此脚本正在执行复选框,具体取决于从xml文件
收集的信息量 function parseXml(xml) {
$(xml).find("sterowniki").each(function() {
var i = 1;
$(xml).find("items").each(function() {
$( "#pierwszy" ).append(' <div class="row"><div class="checkbox"><label><li class="col-xs-10 col-sm-10 col-md-10 col-lg-10"><a href="produkt.html?id='+i+'">'+$(this).attr('name')+'</a></li><input class="col-xs-2 col-sm-2 col-md-2 col-lg-2" type="checkbox" name="porownaj" value="stery"></label></div></div>');
i=i+1;
});
});
}
});
这是验证
<script type="text/javascript">
var limit = 1;
$('input.checkbox').on('change', function(evt) {
if($(this).siblings(':checked').length >= limit) {
this.checked = false;
}
});
</script>
但是,验证不起作用。我究竟做错了什么? 感谢
答案 0 :(得分:0)
您正在使用class="checkbox"
找到复选框,但实际上div
包含复选框。
因此在checkbox
内找到div
来绑定更改事件。并且所有复选框都不是兄弟姐妹,因此您需要在div
内找到它们然后进行计数。
见下面的代码 -
var limit = 1;
$('#pierwszy').on('change','div.checkbox input[type=checkbox]', function() {
var count = $('div.checkbox input[type=checkbox]:checked').length;
if(count > limit) {
this.checked = false;
}
});
答案 1 :(得分:0)
是的,因为你在动态生成的元素上绑定了更改事件,在页面加载脚本时加载了但是dom没有那个复选框,所以你必须将事件委托给{ {1}}或closest static parent
本身:
document
或:
$('#pierwszy').on('change', 'input[type="checkbox"]', function(evt) {
注意: -
您附加了一些没有任何结束的元素。