我有一个带有两个提交按钮的表单:一个更新购物车中的商品数量,另一个让用户继续结帐。如果购物车中没有物品是“运输”物品,那么我希望用户不能结帐。我仍然希望用户能够更新数量。
最初我使用了这个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
代码中添加一个条件。虽然我无法找到这样的字段(并且我读到了此信息不存在的提示)。
如何防止同一表单上的多个提交按钮之一的默认操作?