[英]Get parent checkbox value if its parent is not checked
我僅想獲取父復選框的值,而未選中它的父復選框。 例如,如果我檢查Manager 1,則我只能得到Manager1。總裁也是如此。 但是,如果我檢查Assistant Manager 1至3,則應該只獲得Assistant Manager 1至3。
我有這個JS,但我堅持使用if($(txtbox).is(':checked')== false)這行。 即使未選中父項,它始終返回true。
這是JS代碼段:
$('#xxx').on('click',function () {
var hid = new Array();
var counter = 0;
$('ul li input[type=checkbox]').each(function () {
if($(this).is(':checked')){
var chk = $(this);
li = chk.closest('li');
ul = li.parent();
parentli = ul.parent();
if($(parentli).prop("tagName")=="LI"){
txtbox = parentli.find('input');
alert($(txtbox).is(':checked'));
if($(txtbox).is(':checked')==false){
hid[counter] = chk.val();
counter++;
}
}else{
hid[counter] = chk.val();
}
}
});
});
這是html:
<ul>
<li><label><input type="checkbox" value="Administration" />Administration</label>
<ul>
<li><label><input type="checkbox" value="President" />President</label>
<ul>
<li><label><input type="checkbox" value="manager 1" />Manager 1</label>
<ul>
<li><label><input type="checkbox" value="asst manager 1"/>Assistant Manager 1</label></li>
<li><label><input type="checkbox" value="asst manager 2"/>Assistant Manager 2</label></li>
<li><label><input type="checkbox" value="asst manager 3"/>Assistant Manager 3</label></li>
</ul>
</li>
<li><label><input type="checkbox" value="manager 2"/>Manager 2</label></li>
<li><label><input type="checkbox" value="manager 3"/>Manager 3</label></li>
</ul>
</li>
<li><label><input type="checkbox" value="Vice President"/>Vice President</label>
<ul>
<li><label><input type="checkbox" value="Manager 4"/>Manager 4</label></li>
<li><label><input type="checkbox" value="Manager 5"/>Manager 5</label></li>
<li><label><input type="checkbox" value="Manager 6"/>Manager 6</label></li>
</ul>
</li>
</ul>
</li>
</ul>
<input type="button" id="xxx" value="click" />
演示: http : //jsfiddle.net/Er6Rx/1/
采用:
$(txtbox).prop('checked')
代替
$(txtbox).is(':checked')
我不確定所有這些代碼在做什么,但是從我閱讀的內容看來,這就是您想要的:
$('#xxx').on('click',function(){
var selected = '';
$('input[type=checkbox]').each(function () {
var sThisVal = (this.checked ? "1" : "0");
if(sThisVal==true)
{
selected += '<li>'+$(this).attr('value')+'</li>';
}
});
$('.checkedboxes').append('<ul>'+selected+'</ul>');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.