|
setup diary |
Debian squeezeでWebサーバーを立ち上げて、rubyのCGIを使ってhomepageを作ってみた。いろいろと細かいプログラムを書いて、それなりに動くようになったが、問題が残っていた。submitをダブルクリックすると、二回データーが送られてしまうのだ。これまでは知っていて無視をしていたが、いつかは重大な問題になるだろうということで、対策をしてみた。
以前はjavascriptを使わないといけないと思っていたが、実は使わなくても良いらしい。以下のようにすると、一回submitすると、disableになって、二回目は無効になる。
<INPUT name="button" TYPE="submit" value="submit" onclick="this.disabled=true">
rubyのCGIクラスを使う場合には、
cgi=CGI::new("html4") cgi.submit({"value"=>"submit","name"=>"button","onclick"=>"this.disabled=true"})
としたら、うまく行った。思ったよりも簡単に出来て助かった。
firefoxではうまく動いているが、ieでは動いていないことを発見した。ieでは、onclick="this.disabled=true;this.form.submit();"としないといけないらしい。