

入力画面を作成しています。
この画面に、複数選択可能なselectボックスを配置したいと思っています。
この時、選択できる個数を制限したいのですがどのようにすればよいでしょうか?
<select multiple size="3" name="test">
<option value="" selected></option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
<option value="5">E</option>
<select>
初期値が「""」となっており、selectボックスで何も選択せずに登録することも可能で、
何か選択された時は、最大3つまでしか選択できないようしたいと思っております。
そして、最大3つまでしか選べようにした上で、その3つの中に初期値の「""」が含まれていた場合はメッセージを表示させる。
以上の事をやりたいのですが、どのようにすれば良いでしょうか?
助けてください。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
<form id="f1" action="next.cgi" method="POST">
<select id='field1' size=7 multiple>
<option value=''></option>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
<input type='button' value='go' onclick='on()' />
</form>
<script type='text/javascript'><!--
function on()
{
var field1 = document.getElementById('field1');
var selectedCount = 0;
// 選択されている個数を取得
for(ii=0;ii<field1.options.length;ii++) {
if(field1.options[ii].selected) {
selectedCount++;
}
}
// 0番目選択の検査
if(field1.options[0].selected) {
alert('0番目が選択されちょる');
return false;
}
// 3個以上選択の検査
if(selectedCount > 3) {
alert('3個以上選択されちょる');
return false;
}
// 正常処理
document.getElementById('f1').submit();
}
// --></script>
こんな感じかな。
selectタグで4つめを選択した瞬間にアラートを出すのは難しいです。
何かしらの方法はあるかもしれませんが。
wp_様
ご回答ありがとうございます。
連絡が遅くなってしまいましたが、教えていただいた方法で見事実現できました。
ありがとうございました。
No.2
- 回答日時:
>その3つの中に初期値の「""」が含まれていた場合はメッセージを表示させる
""のデータはほかの何かを選んだ時にチェックからはずしてはどうですか?
とりあえずこんな感じで
<script>
array1=new Array();
function check(obj){
var array2=new Array();
var count=0;
var opt=obj.options;
for(var i=0;i<opt.length;i++){
if(opt[i].selected) count++
array2[i]=opt[i].selected;
}
if(count==0) opt[0].selected=true;
if(count>1 && opt[0].selected){
opt[0].selected=false;
count--;
}
if(count>3){
for(var i in array1){
opt[i].selected=array1[i];
}
alert("3つまで!")
return false;
}
array1=array2;
}
</script>
<form>
<select multiple size="6" name="test" onChange="check(this)">
<option value="" selected>選択して</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
<option value="5">E</option>
</select>
</form>
こういうものはチェックボックスで処理した方が楽だしきれいだと
思いますよ
yambejp様
ご回答ありがとうございます。
連絡が遅くなってしまいましたが、無事やりたい事が実現できました。
>""のデータはほかの何かを選んだ時にチェックからはずしてはどうですか?
このご意見は大変参考になりました。
>こういうものはチェックボックスで処理した方が楽だしきれいだと
>思いますよ
確かに、yambejp様のおっしゃるとおり、チェックボックスの方が簡単に実現できたのですが、
selectボックスの値が動的に変わってしまうので、チェックボックスにできませんでした。
でも、今回は皆様のおかげで見事実現できました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptでoptionタグを削除...
-
今日の日付を自動的にセレクト...
-
プルダウン選択を変更すると、...
-
javascriptでセレクトボックス...
-
<input>の選択肢をプルダウンメ...
-
return falseが効かない
-
ラジオボタンとプルダウンを連...
-
Javascriptでフォームのセレク...
-
プルダウンメニューに連動する...
-
データベースからのarray を j...
-
selectボックスで選択数を制限...
-
JavaScriptで<select>の<option...
-
C#(csファイル)とjavascriptと...
-
リストボックス内の重複したも...
-
プルダウンで選択すると、DBの...
-
return trueとreturn falseの用...
-
Selectの中身をfor文で入れる
-
tableの任意行にfocusをあてる
-
Selectボックスの幅を自動で広...
-
sessionの値でボタンを活性・非...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
<input>の選択肢をプルダウンメ...
-
スマホのフォームでのselect複...
-
同じ名前のセレクトがある場合...
-
selectを変更不可にしたい
-
javascriptでセレクトボックス...
-
3つの連動したプルダウンメニュ...
-
Selectボックスの一覧表示方法
-
全てのselect要素をデフォルト...
-
リストボックス内の重複したも...
-
ラジオボタンの選択に応じてプ...
-
addclassがうまく働きません
-
ラジオボタンとプルダウンを連...
-
セレクトボタンで特定の項目で...
-
VBScriptでHTMLのセレクトボッ...
-
【javascript】連想配列からセ...
-
連想配列からセレクトボックス...
-
JavaScriptで<select>の<option...
-
セレクトボックスの初期選択と...
-
セレクトボックスで配列を呼び...
おすすめ情報