【发布时间】:2013-02-10 10:58:58
【问题描述】:
我有一个带有两个提交按钮的表单:一个更新购物车中的商品数量,另一个让用户继续结帐。如果购物车中没有物品是“运输”物品,那么我希望用户不能结帐。我仍然希望用户能够更新数量。
原来我用的是这个javascript:
$('#cartform').submit(function (e) {
console.log(e)
if ($('.item.shipping').length > 0) {
// there are Shipping items in the cart, so proceed
console.log("OK to checkout")
} else {
// there are no Shipping items so display help
console.log("NO")
e.preventDefault();
$('#shipping-calculator-info p').text("Please select shipping destination.")
}
});
我很快意识到这也禁用了更新数量按钮。
我最初的想法是从我要处理的按钮中捕获click 事件,并在其上捕获preventDefault。不过,这似乎并不能阻止提交的发生。接下来我想也许e,事件,可能有一个指定事件来源的字段——然后我就可以在上面的submit代码中添加一个条件。虽然我找不到这样的字段(并且我读到了此信息不存在的提示)。
如何防止同一表单上的多个提交按钮之一的默认操作?
【问题讨论】:
标签: javascript jquery forms