繁体   English   中英

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

[英]Cannot submit form with .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:

<form method="post" id="date_filter_form" name="date_filter_form" action="">
   <label class="left required" for="from_date">From</label>
   <input type="text" id="from_date" class="datepicker hasDatepicker" value="" name="from_date">
   <label class="left required" for="to_date">to</label>
   <input type="text" id="to_date" class="datepicker hasDatepicker" value="" name="to_date">

    <input type="hidden" value="" name="from_date_db">
    <input type="hidden" value="" name="to_date_db">

    <input type="submit" id="submit" class="button" value="Show results" name="submit">
</form>

您的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 

所以你的验证不会通过

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM