2 つの送信ボタンを持つフォームがあります。1 つはカート内のアイテムの数量を更新し、もう 1 つはユーザーがチェックアウトに進むことができるようにします。カートに「配送」アイテムがない場合、ユーザーがチェックアウトできないようにしたいと思います。ユーザーが数量を更新できるようにしたいと思います。
もともと私はこの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
ただし、そのようなフィールドを見つけることができませんでした (この情報が存在しないというヒントを読みました)。
同じフォームの多数の送信ボタンのうちの 1 つだけの既定のアクションを防ぐにはどうすればよいですか?