:これは私が誤って無限ループをコード化されたことを意味していることは誤って私のASP.NET MVCアプリケーションのjQueryのコードに無限ループをコード化された私は、次のJavaScriptコードで、次のエラーを取得してい
RangeError: Maximum call stack size exceeded
私が想定しています私のJavaScriptに。このコードは、jQuery Validateを使用するASP.NET MVCアプリケーションのコードです。このコードの目的は、送信前にページにキャプチャされた画像を確認することです。
これは、基本的に、jQueryの検証と並行して行う必要のあるフロントエンドの検証です。私の唯一の選択肢は、フォームの送信時にこのコードを実行することです。特に、「送信」ボタンのクリックと送信の間に他のイベントは発生しないためです。コードは次のとおりです。
$('form').submit(function (e) {
e.preventDefault();
//If Corporation is selected as business type
if ($('#businessStructure').val() == "Corporation") {
//Checks CEO signature present
if ($("#signImage").length == 0 || $("#signImage").attr("src") == "") {
alert("Please sign and save your signature in the CEO signature pad");
$("#ceoError").show();
}
else {
//all good, an image exists
$('form').submit();
}
}
//If Sole Proprietor is selected as business type
else if ($('#businessStructure').val() == "SoleProprietor") {
//Checks CEO signature present
if ($("#signImage").length == 0 || $("#signImage").attr("src") == "") {
alert("Please sign and save your signature in the CEO signature pad");
$("#ceoError").show();
}
//Checks partner1 signature present
if ($("#signImage1").length == 0 || $("#signImage1").attr("src") == "") {
alert("Please sign and save your signature in the first partner signature pad");
$("#partner1Error").show();
}
else {
//all good, an image exists
$('form').submit();
}
}
else {
//Checks CEO signature present
if ($("#signImage").length == 0 || $("#signImage").attr("src") == "") {
alert("Please sign and save your signature in the CEO signature pad");
$("#ceoError").show();
}
//Checks partner1 signature present
if ($("#signImage1").length == 0 || $("#signImage1").attr("src") == "") {
alert("Please sign and save your signature in the first partner signature pad");
$("#partner1Error").show();
}
//Checks partner2 signature present
if ($("#signImage2").length == 0 || $("#signImage2").attr("src") == "") {
alert("Please sign and save your signature in the second partner signature pad");
$("#partner2Error").show();
}
else {
//all good, an image exists
$('form').submit();
}
}
});
これは、MVCアプリフォームの提出を伴う同時イベントを初めて実行したときです。私が気付いていない別のアプローチがありますか?
これは '$( 'form')。submit();'を呼び出すためです。通常のフォーム提出をしたい場合は、 'e.preventDefault()'を呼び出さないでください。 –
あなたは関数 '$(form).submit()'を何度も呼び出しています。再帰です。これは役に立ちます:https://stackoverflow.com/questions/7065120/calling-a-javascript-function-recursively – colecmc
$( 'form')からイベントを変更しようとしました。 – cryan