jQuery:根据名称和值选择复选框
我有以下HTML:jQuery:根据名称和值选择复选框,jquery,Jquery,我有以下HTML: <form id="test"> <input type="radio" value="A" name="C1"/> <a href="javascript:selectCheckbox('C1', 'A');"> OPTION-A </a> <input type="radio" value="B" name="C1"/> <a href="javascript:selectCheckbox
<form id="test">
<input type="radio" value="A" name="C1"/>
<a href="javascript:selectCheckbox('C1', 'A');"> OPTION-A </a>
<input type="radio" value="B" name="C1"/>
<a href="javascript:selectCheckbox('C1', 'B');"> OPTION-B </a>
<input type="radio" value="C" name="C1"/>
<a href="javascript:selectCheckbox('C1', 'C');"> OPTION-C </a>
// several other: C2, C3, ..
</form>
请让我知道我做错了什么。非常非常感谢 试试$input[name='C1']:选中]。ID应该是唯一的,因此jquery可能不希望返回多个元素 一个页面上不能有多个id相同的元素。所有输入元素的id都是C1。我会使用相对DOM位置来进行导航。另外请注意,不能有具有相同id的不同元素,但在本例中,这是不必要的,因为可以使用名称上的属性选择器来查找正确的输入。请注意,您已经知道需要根据单击的链接的位置检查各种输入中的哪些。我更喜欢将代码与标记分开,因此我给了链接一个类,使它们易于选择,并将click handler应用程序移动到代码中 更新:注意,我删除了代码以取消选中其他收音机。对于收音机,将一个设置为“已选中”将自动取消选中其他任何一个
$(function() {
$('a.checkbox-selector').click( function() {
// get the checkbox immediately preceding the link -- this should
// be checked. Checking it should automatically uncheck any other
// that may be checked.
$(this).prev(':checkbox');
.attr('checked',true);
return false; // don't process the link
});
});
<form id="test">
<input type="radio" value="A" name="C1"/>
<a href="#" class="checkbox-selector"> OPTION-A </a>
<input type="radio" value="B" name="C1"/>
<a href="#" class="checkbox-selector"> OPTION-B </a>
<input type="radio" value="C" name="C1"/>
<a href="#" class="checkbox-selector"> OPTION-C </a>
<!-- several other: C2, C3, ... -->
</form>
谢谢你的帮助,我终于得到了:
function selectTestAnswer( chkbox, value ) {
$("[name="+chkbox+"]").each( function() {
if ( $(this).val() == value )
$(this).attr('checked', true);
else
if ( $(this).attr('checked') == true)
$(this).attr('checked', false);
});
}试试这个:
$('input:radio[name="' + chkboxName + '"][value="' + value + '"]')
.attr('checked', 'checked');
如果jquery版本>1.6,则可以使用prop而不是attr 请参阅此链接 从jQuery1.6开始,.prop方法提供了一种显式 检索属性值,而.attr检索属性 因此,您要查找的代码看起来更像
$('input:checkbox[name="Validators"][value="' + v + '"]').prop('checked',true);
你不应该有多个元素具有相同的ID。你是对的,我现在删除了ID。谢谢注意:在jQuery1.3中,删除了[@attr]样式选择器,它们以前在jQuery1.2中被弃用。只需将“@”符号从选择器中删除,即可使其再次工作。您可以这样做,但出于以下几个原因,这样做是不好的。尝试一下,注意$id和$[id=id]之间的区别。后者将返回一个包含多个共享id的元素的包装集,而前者将返回一个只包含第一个声明的具有此id的元素的包装集。
$('input:checkbox[name="Validators"][value="' + v + '"]').prop('checked',true);