до того, как будет отправлено действие отправки, я делаю небольшую проверку:
$(document).ready(function(){
$("#submit").submit(function(e){
e.preventDefault();
var check = $("#check").val();
if(check == 1) {
$("#submit").submit();
} else {
alert"input-hidden value is wrong")
}
}
});
});
Таким образом, я проверяю, установлено ли значение спрятанного значения в 1.
Если это так, действие формы должно быть обработано, но вместо этого я получаю эту ошибку:
too much recursion
кто-нибудь может помочь с этим?
РЕДАКТИРОВАТЬ:
В этой строке:
$("#submit").submit();
эта часть:
#submit
подчеркнуто, почему?
Это потому, что вызов $("#submit").submit();
снова запускает событие отправки, которое снова вызовет обработчик отправки, создавая бесконечный рекурсивный цикл... вызовите метод представления элементов dom, а не this.submit()
или используйте функцию preventDefault(), только если значение недопустимо, иначе разрешить действие по умолчанию продолжить
$(document).ready(function () {
$("#submit").submit(function (e) {
var check = $("#check").val();
if (check != 1) {
e.preventDefault();
alert("input-hidden value is wrong")
}
});
});
Вы не должны называть $("#submit").submit()
чтобы разрешить подчинение, это приводит к тому, что обработчик будет вызываться снова и снова. Вместо этого вы должны переместить preventDefault()
после предупреждения об ошибке() и вернуть true вместо вызова submit().