2012-06-07 111 views
21

我想复选框与specfic价值,并对其进行检查..获取复选框与特定值

我作出这样

$(":checkbox").filter({"value":5}).attr("checked","true");​ 

这里是HTML

​<input type="checkbox" name="priv"​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ value="1"​​​​​​​​​​​​​​​​​/> 
<input type="checkbox" name="priv" value="2"/> 
<input type="checkbox" name="priv" value="3"/> 
<input type="checkbox" name="priv" value="4"/> 
<input type="checkbox" name="priv" value="5"/> 
<input type="checkbox" name="priv" value="6"/> 
<input type="checkbox" name="priv" value="7"/> 
<input type="checkbox" name="priv" value="8"/>​ 

这里的一个demo的问题

回答

67

您可以使用Attribute Equals Selector [name="value"]来获取复选框wi特别的价值。也可以使用prop()而不是attr(),因为这是jQuery doc推荐的方式。

Live Demo

$(":checkbox[value=4]").prop("checked","true"); 

$("input[type=checkbox][value=5]").prop("checked",true); 

描述:选择具有指定属性与正好等于一定值时,jQuery doc值的元素。

您也可以使用attr(),但prop更适合布尔属性。

$(":checkbox[value=4]").attr("checked","true"); 

在jQuery 1.6的,所述.attr()方法返回未定义对于尚未被设置的属性 。要检索和修改DOM属性,如 的检查,选择,或禁用表单元素的状态,使用 .prop()方法,jQuery doc

编辑,在评论中问道,“会如何看像接听/找到表达复杂的值,比如值=“斯密,大卫

你可以附上那种价值观像斯密,大卫上单引号。你甚至可以使用使用jQuery的喜欢性格#,。,$等,请参阅更新的小提琴here

$("input[type=checkbox][value='#Smith, David$']").attr("checked","true"); 
+0

它的工作原理,谢谢 – palAlaa

+1

不客气 – Adil

+0

偷了我半个小时:你的第二个代码示例中的分号有点邪恶。当你复制整行('$(“input [type = checkbox] [value = 5]”)。prop(“checked”,true);')并将其粘贴到脚本中时,SublimeText + JSHint )会抛出错误'意外'。浏览器**停止执行**代码,并显示错误“Unexpected token ILLEGAL”。删除分号并用“新鲜”替代它帮助了我(想象我的debbuging绝望......)我想这里有一个隐藏的ascii-char或者 –

0
$(":checkbox[value=5]").attr("checked",true);​​​ 
3
$("input:checkbox[value='5']").attr("checked","true") 
7
$(":checkbox").filter(function() { 
    return this.value == '5'; 
}).prop("checked","true");​ 

DEMO

如果你想使用它的不同的值,然后使它通用像以下:

function checkWithValue(val) { 
    $(":checkbox").filter(function() { 
     return this.value == val; 
    }).prop("checked", "true"); 
} 


checkWithValue(5);​ 

DEMO

1

它的工作原理也与方做法

$(":checkbox").filter(["value":5]).prop("checked","true"); 
0
$("#catalogTBL").find("input[type=checkbox][value='snet']").prop("checked", true); 

这是我能得到这个工作的唯一途径。寻找一个表格中的复选框。

2

我有一个动态值需要循环。这对我来说很有效:

for (var i = 0, len = value.length; i < len; i++) { 
    $("#form-name").find("input[type=checkbox][name='fName']").filter(function() { 
    return this.value == values[i]; 
    }).prop("checked", true); 
} 

希望能帮助别人。