【JavaScript/jQuery】button type=”submit” リロードさせない JS

type="button"、type="submit"

同ページにおいて、type="button"、type="submit"のbuttonがあり、どちらも無効化させたい。
buttonの挙動について、前者は遷移だけでよく、後者はpost送信したい場合。

//submit
$(document).on('click','.send-btn', function(e)){
  e.preventDefault();//submit止める。この後の処理も動く
  $('.send-btn').prop('disabled',true);
  return false;//以降の処理は行われない
}
//button
if($('button').hasClass('send-btn')){
  $('.target-btn').prop('disabled', true);
  return false;
}

preventDefault()、return false について

Event.cancelableでキャンセル可能なイベントのうち(click、scroll、beforeunload等)、通常起こるイベントを発生させないようにする。
submitの場合には、ページ遷移するがそれ自体を止める。
return falseにすると、それ以降の処理が行われなくなる。

参照

Event.preventDefault()
JavaScriptのpreventDefault()って難しくない?preventDefault()を使うための前提知識
jQuery return false と preventDefault() の違い