"Main Colors"및 "Rest of Colors"의 두 그룹이 있습니다. 화이트
메인 색상 => 적색, 녹색, 청색, 색상의 노란색
나머지 => 블랙, 마젠타, 로즈,jQuery를 사용하여 다중 선택 드롭 다운에서 요소를 선택하십시오.
내가 다중 선택 드롭 다운의 색상 뒀다 :
<select id="multipeColorSelect" multiple size="8">
<option class="main" value="Red">Red</option>
<option class="main" value="Green">Green</option>
<option class="main" value="Blue">Blue</option>
<option class="main" value="Yellow">Yellow</option>
<option class="other" value="Black">Black</option>
<option class="other" value="Magenta">Magenta</option>
<option class="other" value="Rose">Rose</option>
<option class="other" value="White">White</option>
</select>
내가 2가를 체크 박스. "메인 색상"그룹에있는 하나의 색상을 선택하면 아래의 코드에서
<label>Main colors
<input type="checkbox" data-class="main" name="colorcheckbox" value="maincolors" />
</label>
<label>Rest of colors
<input type="checkbox" data-class="other" name="colorcheckbox" value="restofcolors" />
</label>
는
1), 체크 박스 다른 "색상의 나머지"는 사용할 수 없습니다.
2) "나머지 색상"그룹에서 하나의 색상을 선택하면 다른 "기본 색상"확인란이 비활성화됩니다. 변화에 대한 죄송합니다
$('input[name="colorcheckbox"]').click(function() {
$('#multipeColorSelect option.' + $(this).data("class")).prop('selected', $(this).prop("checked"));
});
$('#multipeColorSelect').change(function() {
var mainChecked = 0;
var otherChecked = 0;
$(this).find("option").each(function() {
if ($(this).prop("selected")) {
$(this).hasClass("main") ? mainChecked++ : otherChecked++;
}
});
$("input[data-class='other']").prop("disabled", mainChecked == 1);
$("input[data-class='main']").prop("disabled", otherChecked == 1);
if ($('#multipeColorSelect option[value="Black"]:checked').length > 0 && $('#multipeColorSelect option[value="Blue"]:checked').length) {
$("input[data-class='other'], input[data-class='main']").prop("disabled", false);
}
});
: 1) "선택, 다른" "레드"와 "녹색"또는 "녹색"과 "블루"또는 "블루와"노란색 경우 나머지 색상의 "확인란해야 2) "검정", "자홍색", "자홍색", "장미"또는 "장미"와 "흰색"을 선택한 경우 다른 "주 색상"확인란을 선택하지 않아야합니다.
또한 jQuery 코드를 더 간단하게 단순화 할 수 있는지 알려 주시기 바랍니다. 도와주세요.
: