使用数据表。它使用Javascript
动态生成以下选择框Firebug为
上方的选择框显示了这段代码
我尝试使用以下简单函数触发$('#check_all').click( function()
。但它不起作用。代码中有什么错误吗?
$('select[name=list_length]').change(function(){
if($('#check_all').prop('checked'))
$('#check_all').click();
});
$('#check_all').click( function() {
if($(this).prop('checked')){
totalqt=0;
$('.checkbox').each(function(){
$(this).prop('checked', true);
doIt(this);
});
}else{
$('.checkbox').each(function(){
$(this).prop('checked', false);
doIt(this);
});
}
changeQt();
} );
答案 0 :(得分:1)
像这样更改您的代码。
function checkAllCheckboxes(isChecked) {
if(isChecked ){
totalqt=0;
}
$('.checkbox').each(function(){
$(this).prop('checked', isChecked);
doIt(this);
});
changeQt();
}
$('select[name=list_length]').change(function(){
if($('#check_all').is(':checked')){
$('#check_all').prop('checked', false);
checkAllCheckboxes(false);
}
});
$('#check_all').click(function(){
checkAllCheckboxes(this.checked);
});
答案 1 :(得分:0)
我可以在代码中看到一件可能存在问题的事情,但由于你没有写出究竟是什么失败,我不确定这是不是问题。
$('select[name=list_length]').change(function(){
if($('#check_all').prop('checked'))
$('#check_all').click();
});
在这里,您会看到是否选中了复选框,然后您在其上调用了一个点击事件。
在单击事件处理程序中,再次检查是否选中该框并迭代其他复选框。但是,您在更改事件处理程序中调用的click事件将更改复选框的选中状态,从而获得所需内容的相反结果。
你喜欢这个解决方案吗?
var toggleCheckBoxes = function() {
if($(this).prop('checked')){
totalqt=0;
$('.checkbox').each(function(){
$(this).prop('checked', true);
doIt(this);
});
}else{
$('.checkbox').each(function(){
$(this).prop('checked', false);
doIt(this);
});
}
changeQt();
}
$('#check_all').click(toggleCheckBoxes);
$('select[name=list_length').change(function(){
if($('#check_all').is(':checked')){ toggleCheckBoxes(); }
});