我无法使用我的on('submit')事件处理程序来阻止使用event.preventDefault();
提交表单 $("section.shopping-cart").on('submit','form.adjustform input[type="submit"]', function(event) {
// code
event.preventDefault();
})
我让它使用on('click')并使用return false。虽然我已经读到上述方法是正确的做法..
谢谢, 凸轮
答案 0 :(得分:7)
您正在使用on
的委托表单,选择器会选择表单元素以外的其他内容:
// Here ------------------------------------------------v
$("section.shopping-cart").on('submit','form.adjustform input[type="submit"]', ...
submit
事件发生在form
元素上(至少,您可以有效取消的元素)。指定表单元素:
$("section.shopping-cart").on('submit','form.adjustform', ...
以下是不的示例,因为选择器会选择非表单元素:
以下是更正的示例正常工作:
(注意:表单在新窗口中打开,只是为了避免让您远离代码。)
答案 1 :(得分:3)
提交事件发生在表单上,而不是在提交按钮上。
将事件绑定到表单:
$("section.shopping-cart").on('submit','form.adjustform', function(event) {
或绑定提交按钮的click事件:
$("section.shopping-cart").on('click','form.adjustform input[type="submit"]', function(event) {
(但是,有些浏览器还允许按Enter键提交表单,在这种情况下它不会触发click事件。)