知らんかったというか、これまでずっと下記コードを書いてた。
$('#button').on({ click: function(e) { e.preventDefault(); // 一旦クリックされたイベントをキャンセル $(form).removeAttr('onsubmit').submit(); // 消した後に指定のformをsubmitする } });
これでも一応できる。
が、例えば、submitするボタンが複数増えて、さらに押されたボタンを判断して色々処理させたい場合、これでは押されたボタンのnameとvalueが飛んでくれない。
押されたボタンがキャンセルされ、$('form')...submit()
で、フォームをただsubmitしているだけなので、値が飛ばない。
なので、こうしましょう。
// 複数押されてもいいようにイベントを監視するボタンはクラス(css)にする $('.button').on({ click : function(e) { // e.preventDefault(); これをやると押されたsubmitボタンがわからなくなる $('#form').removeAttr('onsubmit'); // これをやらないとformを送信できない // $(this).submit(); // 最後に押されたところでsubmitする・・・ってわけでもなかった。。。 } });
これでおk