August 03, 2005
■ onsubmit で submit ボタンを disable にしてユーザビリティを良くする
先の Yahoo! Shopping のアプリケーションで、今度ちょっとやってみようと思ってたことを実装してみた。
ボタンを押したときに、そのボタンが disable になります。この方法を使うとボタンが押されて次の処理に入ろうとしているというのが直感的に分かるのと、二重送信防止にもなるということでユーザビリティが改善できます。
仕掛けはすごく簡単で、form の onsubmit ハンドラに、その form に紐づく submit ボタンを disable になるような JavaScript を登録しておくだけ。
function disableSubmit(form) {
var elements = form.elements;
for (var i = 0; i < elements.length; i++) {
if (elements[i].type == 'submit') {
elements[i].disabled = true;
}
}
}
という関数を用意しておいて、
<form method="get" onsubmit="disableSubmit(this)"> <input type="text" name="q"> <input type="submit" value="search"> </form>
と、onsubmit に指定すれば ok。
たとえばsubmitしたらJavaScriptでsubmitボタンを押せなくして多重ポストを防ぐとか、簡単にできるんだけど、実際に実装してるところは少ないよね。そういう面で好感が持てる。
川o・-・)<2nd life - FEEDBRINGER
もとはと言うと、このエントリーを読んで「へえ」と思い実際 Feedbringer を触ってみてこれはいいなと思い今度やってみようと思っていたものです。Feedbringer では body の onload 時にまとめて document.forms で form 全部を取得して onsubmit ハンドラへのイベント登録をやっていて、よりスマートな感じですね。
はてなのサービスにも搭載していきたいなあ。
トラックバック - http://d.hatena.ne.jp/naoya/20050803/1123053496
- 「submitボタン」を使いやすくするTips
- http://d.hatena.ne.jp/naoya/20050804
- http://d.hatena.ne.jp/window16/20050804
- http://d.hatena.ne.jp/asakusabashi/20050804
- submit ボタンを disable にした
- ちょっとしたユーザビリティ
- http://d.hatena.ne.jp/lacen/20050805
- onsubmit で submit ボタンを disable にしてユーザビリティを悪く...
- http://d.hatena.ne.jp/jitian/20050807
- http://d.hatena.ne.jp/jazzanova/20050809
- http://d.hatena.ne.jp/m-hashimoto/20050809
- ボタンの disabled を解除するブックマークレット
- http://d.hatena.ne.jp/jrofbyr/20050818
- http://d.hatena.ne.jp/simpleboxes/20051123
- http://d.hatena.ne.jp/worstman/20050805
- http://d.hatena.ne.jp/ymlab/20060829
- http://d.hatena.ne.jp/kensuu/20070131
- suusukeの日記 - 多重ポストを防ぐ
- WEB開発日記 - ABUTEC - onsubmit で disable にするやつを jQuery ...
- 崖の下で花を紡ぐブログ - submit ボタンで onclick
- 崖の下で花を紡ぐブログ - javascript submit ボタンで onclick
- 徒然なるままに
リンク元
- 255 http://b.hatena.ne.jp/
- 255 http://d.hatena.ne.jp/faerie/20050805
- 255 http://espion.just-size.jp/archives/05/220233057.html
- 255 http://netafull.net/archives/009919.html
- 255 http://secure.ddo.jp/~kaku/tdiary/
- 255 http://www.drk7.jp/MT/archives/001345.html
- 255 http://www.fraction.jp/log/archives/2005/08/143
- 255 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-19,GGLD:ja&q=trackback+仕様
- 218 http://www.koikikukan.com/archives/2007/02/19-031721.php
- 177 http://d.hatena.ne.jp/kaitoh07/20080807

