Get checkbox with specific value

喜欢而已 提交于 2019-12-17 18:15:34

问题


I want to get checkbox with specfic value and make it checked..

I make like this

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

and here is the 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"/>​

here's a demo of the problem


回答1:


You can use Attribute Equals Selector [name="value"] to get the checkboxes with particular value. Also use prop() instead of attr() as that is recommended way by jQuery doc.

Live Demo

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

or

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

Description: Selects elements that have the specified attribute with a value exactly equal to a certain value, jQuery doc.

You can also do it Using attr() but prop is more appropriate for boolean properties.

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

As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. To retrieve and change DOM properties such as the checked, selected, or disabled state of form elements, use the .prop() method, jQuery doc

Edit, asked in comments, "How would look like the answer/find-expression with complex values, like value="Smith, David"

You can enclose that kind of values like Smith, David on single quotes. You can even use character used by jQuery like #, ., $ etc, see updated fiddle here.

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



回答2:


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

DEMO

If you want to use it for different values then make it generic like following:

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


checkWithValue(5);​

DEMO




回答3:


$("input:checkbox[value='5']").attr("checked","true")



回答4:


I had a dynamic values that needed to be looped over. This is what worked for me:

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);
}

Hope that helps someone out.




回答5:


It works also with square practise

 $(":checkbox").filter(["value":5]).prop("checked","true");



回答6:


Sometimes we want to get checkbox dynamically for a specific value.

$(document).on('click','.at-filter a', function(){
    var aaa = $(this).parent().find("em").html();
    $("input[type=checkbox][value='"+aaa+"']").prop('checked',false)
});



回答7:


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



回答8:


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

This was the only way I could get this to work. Looking for a checkbox in a table.



来源:https://stackoverflow.com/questions/10930048/get-checkbox-with-specific-value

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!