質問: form送信ボタンのダブルクリック防止処理で不思議な現象 perl(cgi)でhtmlタグを書いてフォームを作っています。 送信(submit)ボタンをダブルクリックする人が多く、それを防止するために色々探していたら とすればよいとあったので早速 onclickを付け加え typeのところをsubmitからbuttonに変更しました。 そうするとうまくいったのですが、別のページを同じようにすると動きません。 よく見るとうまくいったものにはnameが入っており、実際には となっていました。 つまり、typeをsubmitからbuttonに変更したつもりだったのですが、間違えてtypeはそのままsubmitで、nameをbuttonに変えてしまっていたのです。 ネットで書いてあったとおりのことをしたつもりが変える箇所を間違え、結果として正常に稼働しています。 自分の環境ではこれでうまく動いているのですが、普通に考えるとnameを変えたからといってきちんと動くとは到底思えません。 なぜこのようなことになるのでしょうか。 これでいいのでしょうか。 今思いましたが、ひょっとしてnameを元々変える必要はなく、typeはあくまでsubmit、 onclick="this.disabled=true; this.value='送信中'; this.form.submit();" これを付け加えさえすればいいということなのでしょうか。 このような処理方法をしているサイトが他に見あたらなかったので、これでいいのかどうか分からず困っています。 どなたかアドバイスください。 よろしくお願いします。 なお、自分のpcはwin2000pro ie6.0sp1で、cgi稼働環境はレンタルサーバーのため詳細非公表で分からないのですが比較的メジャーな会社なのでlinux系だと思います。
回答: name="submit"としていると、 form.submitはボタンのことを意味するようになり、 フォームを送信することでは無くなります。 nameをsubmit以外の名前に変えてみてはいかがでしょうか。