サブミットボタンの2度押し制御について質問です。


Disable On Submit Pluginが1フォームに複数サブミットボタンがある画面で使用できるか教えてください。

二重submit防止として、「jQuery Disable On Submit Plugin | EvanBot」を使用することにしました。
http://neta.ywcafe.net/001046.html

大変便利なのですが、1フォームに複数サブミットボタンがある場合、正しく機能しません。

SAStrutsを使っていて、複数サブミットボタンがある場合、
name属性で、対象アクションメソッドを指定しているのですが、
なぜかDisable On Submit Pluginを使用すると、
name属性は無視されて、formのアクション先にPOSTされます。

(例:action="/XXX"の場合、XXXのindexメソッドが呼ばれます。

>>
フォームをサブミットする場合は、ボタン系のname属性に実行メソッド名を指定します。次の例では、アクションクラスのsubmit()を呼び出します。

<input type="submit" name="submit" value="サブミット"/>

http://sastruts.seasar.org/tutorial.html
<<

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2010/02/22 01:20:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:nemutaiyo
    Firebugsで見たところ、
    「jQuery Disable On Submit Plugin」を使用した時、
    submitボタンのname属性が消えていました。
    これが原因で、indexメソッドが呼ばれていましたと思われます。
    なぜ消えるのか?消さないようにする方法はないか知りたいです。
  • id:nemutaiyo
    上記追記。
    Firebugsの接続パネルで見たところ、
    POSTデータのキーが消えてました。(例: submit name="check" とした場合、"check"がPOSTデータに含まれていない)
  • id:nemutaiyo
    理由は多分、分かりました。
    SubmitをDisableにするとPOSTに含まれない。ということかもしれません。
    動的にhiddenにつめる方法とかあれば教えてください。
  • id:watanabex
    http://neta.ywcafe.net/001046.html
    該当の記事のコメント欄にも同様のことが示唆されており、nemutaiyoさんもお気づきのとおりです。
    submitボタンをdisableにするということは、submitボタンのname属性もvalue属性もPOSTされません。disableにする、ということはそういうことだからです。

    つまり、submitボタンdisable化手法は、SAStrutsとは相性が悪いのです。二度押し防止には他の手段を考えたほうがよいとおもいます。

    submitボタンのname/value属性値を自動的にhiddenに詰め替えることも、このjQueryプラグインを改造すれば可能でしょうが、やはりsastruts側でそれをどう受け取るか?(Actionクラスのどのメソッドに受け渡すのか)というところで問題になってしまう気がします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません