无法使用.submit()提交表单

当任何表单值更改并填写表单中的所有字段时,我需要触发表单提交事件。 除了$('#date_filter_form').submit();之外,其中的所有内容都有效$('#date_filter_form').submit(); 线。 我可以.hide()表单,但由于某种原因不能提交()它。 文档说submit()与trigger(’submit’)相同,所以我无法弄清楚它为什么不起作用。

 $('#date_filter_form input[type="text"]').change(function() { var from_val = $('#date_filter_form #from_date').val(); var to_val = $('#date_filter_form #to_date').val(); if(from_val != '' && to_val != '') { $('#date_filter_form').submit(); } }); 

HTML:

 

您的submit按钮名为'submit' ,它与form.submit方法冲突。

发生这种情况是因为浏览器提供表单元素的快捷方式访问器,引用元素的属性,绑定到form元素,使用name属性作为属性名称。

名为submit的元素将替换form.submit方法,您只需更改名称即可。

另请注意,在IE中,您将遇到与id属性相同的问题。

也可以看看:

  • 表格访问 – 最常见的错误

定义脚本将与之交互的表单HTML时最常见的错误来自表单控件的快捷方式访问器的存在。 它是为控件提供与FORM元素的现有属性相对应的NAME(或可能的ID)。 最常见的例子是类型=“提交”的INPUT元素,其中名称为“提交”。 因为命名控件可用作FORM元素的命名属性,所以此INPUT元素在属性名称“submit”下可用。 不幸的是,FORM元素已经有一个名为“submit”的属性,它是可用于通过脚本提交表单的submit方法。

你的名字来自你的名字

 date_filter_form 

但是你正在寻找一个名为的表格

 date_filter 

所以你的validation不会通过