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 属性后,我的脚本运行得非常棒。
我有一个相当基本的表单(使用 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 属性后,我的脚本运行得非常棒。