JQuery: uncheck subchild checkbox inside ul li -
i have code this:
<ul> <li><input type="checkbox" level="child" name="somename1" value="1" /> child 1</li> <li><input type="checkbox" level="child" name="somename2" value="2" /> child 2 <br /> <ul> <li><input type="checkbox" level="subchild" name="somename1" value="3" />sub child 1</li> <li><input type="checkbox" level="subchild" name="somename2" value="3" />sub child 2</li> </ul> </li> <li ><input type="checkbox" level="child" name="somename3" value="3" /> child 3</li> </ul>
and jquery code:
$('input[@type=checkbox][level="child"]').click(function (event) { var checked = $(this).is(':checked'); if (checked) { alert("checked"); } else { //for click child uncheck subchild alert("when unchecked"); $(this).closest('ul > li').children('input[@type=checkbox][level="subchild"]').attr('checked', false); } });
situation: child 2 + subchild1 + subchild2 checked
problem: want uncheck subchild1 + subchild2 when clicked uncheck of child 2, code above not work. think has with:
$(this).closest('ul > li').children('input[@type=checkbox [level="subchild"]').attr('checked', false);
any great. here jsfiddle: http://jsfiddle.net/p324w/
$('input[type=checkbox][level="child"]').click(function (event) { var checked = $(this).is(':checked'); if (checked) { console.log("checked"); } else { //for click child uncheck subchild $(this).parent().find('input[type=checkbox][level="subchild"]').prop('checked', false); } });
a few notes:
- i'm not sure why using
@
in type selector it's unnecessary - you need use
$(this).parent().find
navigate proper input elements in dom - use
.prop('checked', false)
instead of.attr('checked', false)
. level
isn't valid attribute. if need custom attributes, usedata-*
.
Comments
Post a Comment