jQuery $('#form')。submit()没有做任何事情

时间:2017-07-14 12:06:30

标签: jquery form-submit

我有一个相当基本的表单(使用POST方法),我想在用户点击链接时(在所述表单之外)提交。我在表单中也有一个提交按钮,效果很好,所以表单本身不是问题。

基本上,我所拥有的(显然是简化的):

HTML

<form method="post" id="searchForm" action="[absolute https URL]">
<!-- (some text fields, checkboxes, select elms, hidden fields, a submit button) -->
</form>

<a href="#" class="close">Confirm</a>

JS

} else if ($(e.target).is('a.close')) {
    // do some stuff (<- this works)
    // ...
    // then submit form
    $('#searchForm').submit(); // <- no effect
    // $('#searchForm').trigger('submit'); // also no effect
    // document.forms['searchForm'].submit(); // still nothing

    console.log($('#searchForm')); // <- this works
}

我的问题是:.submit();线似乎没有做任何事情。表单未提交(页面甚至无法重新加载),浏览器控制台也不会出现错误。我知道单击链接时会触发代码,因为它里面有console.log(这也确认找到了表单元素(长度为1))。

页面上没有其他形式,也没有其他带有id&#34; searchForm&#34;的元素。据我所知,没有事件处理程序绑定到表单元素。

我错过了什么?我应该检查什么?

1 个答案:

答案 0 :(得分:2)

好的,我找到了导致这个问题的原因!

我的提交按钮包含以下HTML代码:

<button type="submit" name="submit" id="submit"><span>Search</span></button>

事实证明,submit是一个保留字,不应该用作name属性(实际上也不能用作id)。

这是阻止表单提交的原因。

在我更改两个此按钮的id和name属性后,我的脚本就像一个魅力。