所以我是JS和Jquery庫的相對新手。我一直在玩弄東西,可以看到它非常不整潔,這是我希望你們可以幫助建議一個更好的方式來做我想要達到的目標。隱藏和顯示覆選框選項 - 收拾Jquery
目的:
有多個複選框,其中一些如果選擇顯示的子集的複選框。如果父母沒有被選中,那麼孩子的複選框也應該被取消選中。
HTML(這是簡化的)
<div class="option1">
<input type="checkbox" id="optionA" />
<div id="suboption1">
<input type="checkbox" id="optionA1" />
<input type="checkbox" id="optionA2" />
</div>
</div>
<div class="option2">
<input type="checkbox" id="optionB" />
<div id="suboption2">
<input type="checkbox" id="optionB1" />
<input type="checkbox" id="optionB2" />
</div>
</div>
<div class="option3">
<input type="checkbox" id="optionC" />
<div id="suboption3">
<input type="checkbox" id="optionC1" />
<input type="checkbox" id="optionC2" />
</div>
</div>
<!--No sub options on some-->
<div class="option4">
<input type="checkbox" id="optionD" />
</div>
JS
/*Option 1*/
$("#suboption1").hide();
$("#optionA").click(function() {
revealOptionA();
});
function revealOptionA(){
if($('#optionA').is(":checked")) {
$("#suboption1").show('hide');
} else {
$("#suboption1").hide('hide');
$("#optionA1").attr('checked', false);
$("#optionA2").attr('checked', false);
}
}
revealOptionA();
/*Option 2*/
$("#suboption2").hide();
$("#optionB").click(function() {
revealOptionB();
});
function revealOptionB(){
if($('#optionB').is(":checked")) {
$("#suboption2").show('hide');
} else {
$("#suboption2").hide('hide');
$("#optionB1").attr('checked', false);
$("#optionB2").attr('checked', false);
}
}
revealOptionB();
/*Option 3*/
$("#suboption3").hide();
$("#optionC").click(function() {
revealOptionC();
});
function revealOptionC(){
if($('#optionC').is(":checked")) {
$("#suboption3").show('hide');
} else {
$("#suboption3").hide('hide');
$("#optionC1").attr('checked', false);
$("#optionC2").attr('checked', false);
}
}
revealOptionC();
我已經把一個快速的jsfiddle更好地展示!
https://jsfiddle.net/j5pdq8p8/2/
任何意見,非常感謝!
在短你的第二個要求**如果家長沒有被選中的孩子複選框也應該成爲選中**會,如果你更換工作'attr' with'prop' - https://jsfiddle.net/j5pdq8p8/11/ –
感謝您的諮詢!我會考慮到這一點,Aneesh下面的例子也使用了這個例子,他也減少了代碼的數量。 – Tomatron