4

我无法让我的 on('submit') 事件处理程序来阻止使用 event.preventDefault(); 提交表单;

 $("section.shopping-cart").on('submit','form.adjustform input[type="submit"]', function(event)     {   

      // code

      event.preventDefault();
 }) 

我已经使用 on('click') 并使用 return false 让它工作。尽管我读过上述方法是正确的方法..

谢谢,凸轮

4

2 回答 2

7

您正在使用 的委托形式on,选择器选择表单元素以外的其他内容:

// Here ------------------------------------------------v
$("section.shopping-cart").on('submit','form.adjustform input[type="submit"]', ...

submit事件发生在form元素上(至少,您可以有效地取消的那个)。指定一个表单元素:

$("section.shopping-cart").on('submit','form.adjustform', ...

这是一个工作的例子,因为选择器选择了非表单元素:

示例| 来源

这是正确工作的正确示例:

示例| 来源

注意:表单在新窗口中打开,只是为了避免带您离开代码。)

于 2012-12-15T14:23:00.783 回答
3

提交事件发生在表单上,​​而不是提交按钮上。

将事件绑定到表单:

$("section.shopping-cart").on('submit','form.adjustform', function(event)     {

或者绑定提交按钮的点击事件:

$("section.shopping-cart").on('click','form.adjustform input[type="submit"]', function(event)     {

(不过,有些浏览器也允许按回车键提交表单,在这种情况下不会触发点击事件。)

于 2012-12-15T14:27:11.717 回答