jQuery $('#form').submit() 什么都不做

jQuery $('#form').submit() doesn't do anything

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

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

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();线似乎没有做任何事情。表单没有提交(页面甚至没有重新加载),浏览器控制台中也没有出现错误。我知道单击 link 时会触发代码,因为它里面有 console.log(这也确认找到了表单元素(长度 1))。

页面上没有其他表单,也没有 ID 为 "searchForm" 的其他元素。据我所知,没有事件处理程序绑定到表单元素。

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

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

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

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

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

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

在我更改了 此按钮的 id 和 name 属性后,我的脚本运行得非常棒。