我有一个快速的问题,在我的javascript代码我有这样的:JQuery - 表单提交 - 多次?
\t $('form').submit(function (e) {
\t \t var form = $(this);
\t \t console.log('submit attempt');
\t \t $('input, select, textarea').each(function() {
\t \t \t var attr = $(this).attr('required');
\t \t \t if (typeof attr == typeof undefined || attr == false || (attr = 'Y' && $(this).val() != '')) {
\t \t \t \t if($(this).hasClass('numeric')) {
\t \t \t \t \t if(isNumber($(this).val())) {
\t \t \t \t \t \t $(form).submit();
\t \t \t \t \t }
\t \t \t \t }
\t \t \t \t else {
\t \t \t \t \t $(form).submit();
\t \t \t \t }
\t \t \t }
\t \t \t else {
\t \t \t \t e.preventDefault();
\t \t \t \t $(this).css('border','1px solid red');
\t \t \t }
\t \t });
\t });
而且在控制台日志中我得到了超过1300个的消息“提交的尝试”,那么一个错误:
Uncaught RangeError: Maximum call stack size exceeded
你们有什么想法,为什么发生这种情况,以及如何解决它?也许关于submit()的一些棘手的事情我忘了?
如果需要更多信息,请告诉我。
谢谢!
您应该从循环中删除'$(form).submit();',因为它会导致多个表单递归递交。 –
问题是你递交递交递交表单递归调用递归 –
哦,对了!你知道我怎么能提交表单,当我在if条件没有成为一个循环? 我的意思是:如果条件是真的发送表单,否则preventDefault ....没有条件写什么就够了? – Praem