「送信ボタンを押してメールを送る」実装を以下のようにeventで実装している。
このままだと、ボタンを押した数だけeventが発動してしまうのでメールが何通も送られてしまう。
public function postMail()
{
event(new MailEvent());
return redirect()->route("index");
}
これを解消する1つの手段として、jQueryを使ってクリック時のeventを制御する方法がある。
ポイントとしては click
dblclick
(ダブルクリック)の2つの場合を考慮しておくこと。
$(()=>{
var sent = false;
$('.sendBtn').on("click", (e)=>{
if(sent){
e.preventDefault()
}
sent = true
})
$('.sendBtn').on("dblclick", (e)=>{
e.preventDefault();
})
})