- - PR -
選択最大数を限定したselectボックス(HTML)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-03 14:01
お世話になります。
HTMLの技術に関してご助言願いたいのですが、 現在、複数選択可能なselectボックスを配置しようとしています。 それで、複数選択だけであればmultiple属性を設定すればいいのですが、数に際限なく選択されるのも困る、という状況です。
上のような例で言えば、2個までは選択可能で、3個は困る、というような感じです。 どうにも実現方法が判らず困っています。 ご存知の方、宜しくお願いします。 | ||||
|
投稿日時: 2006-04-03 14:27
方法としてはいくつかあると思いますが
選択リスト内でクリックなどのイベントや 送信ボタンなどがあればその際にJavascriptのメソッドを起動し アラートなどで”選択可能なデータは2つまでです”として選択された OPTIONを解除するなどはいかがでしょう? かなりざっくりとですが以下のようにして※@の個所に どのようにしてとめるかを記述する (最後に選択されたものを解除、メッセージを出し、処理を進めなく するなど)
参考元 [ メッセージ編集済み 編集者: n.w 編集日時 2006-04-03 14:29 ] | ||||
|
投稿日時: 2006-04-03 14:28
クライアント スクリプトであれば、select 内の option 要素をすべて舐めて、 selected の数をカウントし、onkeydown なんかで selected = false; にするとか。 (多分ちらつくでしょう) どのみちサーバ側でチェックする必要があるので、 Post 時にチェックしてエラーにしてしまえば良いような気がしますけどね。 まあ、それは HTML の範疇外になりますけど。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-04-03 16:02
n.wさん、じゃんぬねっとさん、御返答ありがとうございます。
教えていただいた方法で、うまく実装できそうです。 なるほど、selectばかりに目が行ってしまっていましたが、optionの方でselectedをカウントするという手段がありましたか。 選択をスムーズにしたいので、ローテート式に古い選択を解除していく、という方法も考えられそうですね。(ブラウザの方で実装してほしい機能です) ご教授ありがとうございました。 |
1