我有一些链接和选择框。我的html代码如下:
<div>
<div>
<a href='#' onclick='set_checked(false,"checkbox1")'>clear</a>
<a href='#' onclick='set_checked(true,"checkbox1")'>select</a>
</div>
<div>
<input type='checkbox' name='checkbox1'/>
</div>
</div>
<div>
<div>
<a href='#' onclick='set_checked(false,"checkbox2")'>clear</a>
<a href='#' onclick='set_checked(true,"checkbox2")'>select</a>
</div>
<div>
<input type='checkbox' name='checkbox2'/>
</div>
</div>
现在我的要求是,当我单击select
链接时,我必须根据其参数检查复选框,并反转以清除。这里我传递两个参数。一种是传递 bool 值(即,如果 true 则选中,否则取消选中),另一种是传递复选框字段的名称参数。
我使用以下函数来选中或取消选中复选框:
function set_checked(checked,inputFeildName){
$('input[name=inputFeildName]').attr('checked',checked);
}
但是上面的代码不起作用。这是我的 fiddle http://jsfiddle.net/vu6fs/5/ 。
我还有一个要求,在选择任何复选框之前,必须禁用所有清除链接,在选择复选框后,必须启用相应的清除链接。我在 JavaScript 中应用了不透明度和“禁用”属性,但它不起作用,任何人都可以告诉我我的错在哪里..
任何人都可以帮助我吗?
最佳答案
jQuery 1.6+
function set_checked(checked,inputFeildName){
$('input[name="'+ inputFeildName +'"]').prop('checked',true);
}
jQuery 1.5 及更低版本
function set_checked(checked,inputFeildName){
$('input[name="'+ inputFeildName +'"]').attr('checked','checked');
}
这是您扩展问题的示例(您想要更多,关于禁用/启用复选框更改上的 a
标记)
CSS
.disButton {
background: transparent;
border: none;
}
.disButton a {
text-decoration: none;
color: #ddd;
}
jQuery
$('input:checkbox').on('change', function() {
enable_clear(this, this.checked);
}).change();
function enable_clear(el, checked) {
var target = $(el).parent('div').prev('div').find('a:contains(clear)');
if (checked) {
target.unwrap();
} else {
target.wrap($('<button/>', {
disabled: true,
'class': 'disButton',
width: target.width() + 'px'
}));
}
}
$('a').on('click', function(e) {
e.preventDefault();
var target = $(this).parent().next('div').find('input:checkbox');
if (!target.is(':checked') && $(this).text() == 'select') target.click();
if ($(this).text() == 'clear') target.click();
});
<强> DEMO
关于javascript - 如何在 jQuery 表达式中使用函数的字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10513602/