"太多递归"由jQuery提交
"Too much recursion" on submit by jQuery
这是我的带有验证的自定义提交函数。在我点击提交后,它显示"太多递归"。
$('#searchform').on('submit', function(e){
var validateError = '';
var id = '';
var fieldError = [];
$('#searchform :input:text').each(function(){
id = $(this).attr('id');
validateError = jQuery.fn.validationEngine.loadValidation(document.getElementById(id));
if (validateError) {
fieldError.push(id);
}
});
if (fieldError.length != 0) {
return false;
}
else {
$("form#searchform").submit();
return true;
}
});
});
我的表格提交时间太长。在控制台中,我可以看到我的验证Ajax方法正在无限调用。我怎样才能解决这个问题。
问题是,如果表单有效,则对其调用.submit()
,CCD_1会再次调用回调,.submit()
会再次调用,等等,然后得到一个无限递归循环。
只需删除
else {
$("form#searchform" ).submit();
return true;
}
总之,它应该可以工作(回调不会返回任何内容,浏览器将继续默认的表单提交行为)。
无需在else语句中提交表单:
更改您的声明:
else {
return true;
}
您需要在submit中停止重新提交:
更改此项:
else {
$("form#searchform").submit();
return true;
}
至:
else {
return true;
}
或者只需将其全部删除,因为默认情况下(如果您没有返回任何内容)也是继续提交。
验证失败时,您已经正确地返回false,因此不需要使用e.preventDefault()
。4与CCD_ 5和CCD_。
即这是正确的:
if (fieldError.length != 0) {
return false;
}
尽管你可以用这个测试非零长度:
if (fieldError.length) {
return false;
}
相关文章:
- Javascript生成的表单未提交
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- HTML表单提交时未执行外部函数
- 在POST中将html表作为csv提交
- 我应该使用Ng提交还是点击表格
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- 铬:“;未捕获的语法错误:意外的标记:"
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 是否可以使用动作=“;someFunction()"提交表格时
- Jquery:如何处理"停止/取消”;用户停止表单提交时的事件
- 我怎样才能使一个类型=“;提交”;在css中看起来像一个type="按钮”;
- "太多递归"由jQuery提交
- 提交到带有“;动作:javascript"使用javascript
- 如何设置facebook像素"提交按钮”;跟踪
- Ajax表单提交+引导验证程序正在工作.现在"数据未定义”;错误
- <输入类型=“;提交”;name=“;提交”;值=“;提交”;class=“;bt提交"onclick=
- 在提交之前执行js代码"提交”;在铁轨上的红宝石
- ""提交的url中的字符
- 不要"离开这一页"在提交联系表格时
- "NaN”;asp classic中提交值的IE出错