preventDefault()无效('submit')

时间:2012-12-15 14:17:23

标签: javascript jquery

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

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

      // code

      event.preventDefault();
 }) 

我让它使用on('click')并使用return false。虽然我已经读到上述方法是正确的做法..

谢谢, 凸轮

2 个答案:

答案 0 :(得分:7)

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

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

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

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

以下是的示例,因为选择器会选择非表单元素:

Example | Source

以下是更正的示例正常工作:

Example | Source

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

答案 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事件。)