質問: 現在HTMLやjavascript,jqueryを使ってボタンクリックイベントを行っています。 バリデーション処理と画面遷移処理を分けねばならず、 イベントの発火順序を生かして バリデーション処理はmousedownイベント, 画面遷移処理はclickイベント と切り分けたいと思っています。 そのときなのですが、 バリデーションチェックでエラーがあったら 「指定のclickイベントを発火させない」 といった実装をすることは可能でしょうか? もし「指定のイベントや次のイベントを発火させない」といった処理の書き方や方法を知っている方がいましたら教えて頂きたいです。 よろしくお願い申し上げます。
回答: > > 共通処理の中でバリデーションをしないで欲しいと言われてしまいました。 > > > こういうのならいいのでしょうか ``` // A バリデーション $("button").on("click", function(eve){ // バリデーション if(!$("form").get(0).checkValidity()){ eve.stopImmediatePropagation() } }) // B 共通jsのコード $("button").on("click", function(){ // 画面遷移 }) ``` A を B より先に登録しておきます A でバリデーションが失敗したら stopImmediatePropagation を実行して B を実行しないようにします