submitのvalueが送信されない

ボタンを二つ設置して、押されたボタンで処理を振り分けるようにしたかったのですが、なぜかsubmitのvalueだけ送信されない事態に遭遇。

今まで使ってたform用のクラスを流用しているし、原因がわからない。プログラムが出力するフォームのソースをコピペして単純にPOSTされた値を表示するだけのフォームを作成してテストするときちんとsubmitのvalueもPOSTされている…。フレームワークのせいなのか…。でもどのファイルからもPOSTの変数を削るような処理はしていないし、ましてなぜsubmitだけなのか。かなり時間を費やし、やっと原因が判明。外部読み出しのファイルに記述した下記のJavasciptでした。

$('form input[type=submit]').click( function () {
    $(this).attr( 'disabled', 'disabled' );
});

重い処理が発生するフォームがあったので、二重送信しないようにコードをいれていたのを忘れていました。
submitは押したもののデータだけが送信されますが、jQueryでclickしたときにdisabled属性をつけた場合でも送信されないんですね…。押した後にdisableになるだろうから問題ないとスルーしていましたが違うようです。

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく