不确定这是否是jQuery 1.4.2中的错误 - 我无法弄清楚为什么这不起作用。
我需要检查单选按钮。我正在使用attr({'checked':'checked'})
,我也尝试attr('checked':true)
- 没有人会工作。但是,如果我在同一个单选按钮上attr('title':'whatever')
,没有任何其他变化,那么每次都有效。
我遗漏的title
属性和checked
属性之间是否存在一些模糊的差异?它们都是您日常的HTML属性。那么为什么一个工作而另一个工作呢?
以下是代码:
$('.formradiodiv').live('click', function() {
//remove checked radio btns
$('input', $(this).parents('#radiogroup')).each(function() {
$(this).removeAttr('checked');
});
$('input', $(this)).attr('checked', true);
});
编辑:好吧,我相信我明白了。显然它一直很有效,而且只是我的头暂时在tukka tukka土地或其他东西。
我正在检查源代码,看看jQuery是否已将“checked”attr添加到我点击的单选按钮:在Firefox中,突出显示内容,右键单击>查看选择来源。这样做通常会显示JavaScript对DOM所做的所有更改,我希望在源代码中看到该属性。
此时,HTML单选按钮已通过CSS隐藏。这就是我首先需要这个的原因 - 我用图像替换了默认的单选按钮。
所以在源代码中,我没有在单选按钮上看到checked
属性,因此我认为jQuery无法正常工作。但是一旦我删除了CSS规则,并显示了测试按钮,我就看到它们确实得到了正确的检查。努夫说。
非常感谢所有评论的人。我会投票给你们。 干杯
答案 0 :(得分:3)
$('selector').attr('checked', true);
肯定有用!
编辑我在你的问题中意识到你使用的对象符号{ 'key' : 'value' }
适用于.attr()
函数,但是你忽略了括号'{... }”。要修复您的示例,您需要$('selector').attr({ 'checked': true });
答案 1 :(得分:2)
黑暗中的Jab:我怀疑$('input', $(this))
除了复选框之外还匹配其他类型的<input>
元素,并且在设置checked
时出现问题这些元素的属性。
尝试将选择器限制为仅选中复选框(另请注意,在将其用作选择器上下文时,不需要将this
包裹起来):
$("input:checkbox", this).attr("checked", "checked");
答案 2 :(得分:1)