jQuery: selectボックスを連動させる
jQueryを使って、2つのセレクトボックスを連動させてみました。 ご自由にアレンジしてお使いください。
実際の動作は下のサンプルで確認できます。
セレクトボックス連動サンプル
★ 特徴
- 左側のセレクトボックスを変更した時に、 右側のセレクトボックスの一番上には「コードを選択してください」が表示されるようにしています。
- 左側で「全てのコード」を選択すると、右側には全てが表示されます。
★ コードを使用する場合
左側のセレクトボックスのvalue値と、 右側のセレクトボックスのclass名を連動させてください。
HTML
<p>
<!-- 左側 -->
<select id="first">
<option value="first0" selected>全てのコード</option>
<option value="first1">1で始まるコード</option>
<option value="first2">2で始まるコード</option>
<option value="first3">3で始まるコード</option>
</select>
<!-- 右側 -->
<select id="second">
<option value="0000" selected>コードを選択してください</option>
<option value="1332" class="first1">1332</option>
<option value="1605" class="first1">1605</option>
<option value="1801" class="first1">1801</option>
<option value="2002" class="first2">2002</option>
<option value="2803" class="first2">2803</option>
<option value="3845" class="first3">3845</option>
<option value="3902" class="first3">3902</option>
</select>
</p>
jQuery
$(document).ready(function(){
// selectbox コード選択左側
$("#first").on("change", change_select1);
});
// selectbox コード選択左側
function change_select1(){
var value = $("#first option:selected").attr("value");
//console.log(value);
// #second option の要素数を取得
var count = $("#second option").length;
//console.log(count);
for (var i=1; i<count; i++) {
// #second option要素
var opt = $("#second option").eq(i);
var cls = opt.attr("class");
//console.log(i + ": " + cls);
if (value == cls){
//console.log(i + ": " + value);
opt.show();
}else if (value == "first0"){
opt.show();
}else{
opt.hide();
}
}
// value 指定
$("#second").val("0000");
}