即时尝试在jquery中创建一个函数,以便在单击一个主复选框时禁用一组复选框
功能是
function DisableCheckboxes(id)
{
if($(this).is(':checked'))
{
$("input[name="+id+"]").each(function(){
$(this).attr({
'checked':false,
'disabled':true});
});
}
else
{
$("input[name="+id+"]").each(function(){
$(this).attr('disabled',false);
});
}
}
Run Code Online (Sandbox Code Playgroud)
并在点击事件上调用它 -
$(document).ready(function() {
$("#chkNotMatter").click(DisableCheckboxes('chklStatus'));
});
Run Code Online (Sandbox Code Playgroud)
问题是 点击事件donot得到应用并且主复选框被检查
您应该将回调传递给事件处理程序,而是调用DisableCheckboxes并返回结果.你应该使用:
$(document).ready(function() {
$("#chkNotMatter").click(function() { DisableCheckboxes.call(this, 'chklStatus'); });
});
Run Code Online (Sandbox Code Playgroud)
编辑:
如更新的代码段所示,您必须使用callon,DisableCheckboxes因为您正在引用this它,因此它正确引用复选框dom元素.
此外,您可以DisableCheckboxes按如下方式缩小,因为attr修改了选择器中的所有对象:
function DisableCheckboxes(id) {
if ($(this).is(':checked')) {
$("input[name="+id+"]").attr({
'checked':false,
'disabled':true
});
} else {
$("input[name="+id+"]").attr('disabled',false);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
913 次 |
| 最近记录: |