5つの選択メニューがあります。いずれかの選択メニューのオプションの1つが選択されている場合、他のすべての選択メニューで次のことを行います。
- .propはfalseに必要です
- .propがtrueに無効化
- .css( "background-color"、 "#e8e8e8");
最初の選択メニューのコードを記述しましたが、これは正常に機能します。私の質問は、5つの選択メニューすべてに対してこれをきちんと記述して、不要なコード行をなくすにはどうすればよいかということです。
任意のヘルプ/アドバイスをいただければ幸いです。前もって感謝します。
これが私のコードです:
<li id="li_13" >
<label class="description" for="element_13">A</label>
<div>
<select id="element_13" name="element_13" required="required">
<option value="" selected="selected"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</li>
<li id="li_14" >
<label class="description" for="element_14">B</label>
<div>
<select id="element_14" name="element_14" required="required">
<option value="" selected="selected"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</li>
<li id="li_15" >
<label class="description" for="element_15">C</label>
<div>
<select id="element_15" name="element_15" required="required">
<option value="" selected="selected"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</li>
<li id="li_16" >
<label class="description" for="element_16">D</label>
<div>
<select class="element select medium" id="element_16" name="element_16" required="required">
<option value="" selected="selected"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</li>
<li id="li_17" >
<label class="description" for="element_17">E</label>
<div>
<select id="element_17" name="element_17" required="required">
<option value="" selected="selected"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</li>
<li id="li_18" >
<label class="description" for="element_18">F</label>
<div>
<select id="element_18" name="element_18" required="required">
<option value="" selected="selected"></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
</li>
JQUERY:
$('#element_13').change(function(){
if ($(this).val().length != 0){
$('#element_14').prop('required', false);
$('#element_15').prop('required', false);
$('#element_16').prop('required', false);
$('#element_17').prop('required', false);
$('#element_18').prop('required', false);
$('#element_14').prop('disabled', true);
$('#element_15').prop('disabled', true);
$('#element_16').prop('disabled', true);
$('#element_17').prop('disabled', true);
$('#element_18').prop('disabled', true);
$('#li_14').css("background-color","#993333");
$('#li_15').css("background-color","#993333");
$('#li_16').css("background-color","#993333");
$('#li_17').css("background-color","#993333");
$('#li_18').css("background-color","#993333");
}
else{
$('#element_14').prop('required', true);
$('#element_15').prop('required', true);
$('#element_16').prop('required', true);
$('#element_17').prop('required', true);
$('#element_18').prop('required', true);
$('#element_14').prop('disabled', false);
$('#element_15').prop('disabled', false);
$('#element_16').prop('disabled', false);
$('#element_17').prop('disabled', false);
$('#element_18').prop('disabled', false);
$('#li_14').css("background-color","#e8e8e8");
$('#li_15').css("background-color","#e8e8e8");
$('#li_16').css("background-color","#e8e8e8");
$('#li_17').css("background-color","#e8e8e8");
$('#li_18').css("background-color","#e8e8e8");
}
});
セレクターとしてクラスを使用する回答から更新(SHOW / HIDEでもより良い):
$(".complaint").on("change", function() {
if ($(this).val().length != 0){
$(".complaint").not(this)
.prop("required", false)
.prop("disabled", true)
.closest("li").hide();
}
else{
$(".complaint").not(this)
.prop("required", true)
.prop("disabled", false)
.closest("li").show();
}
});