使用jquery检查/取消选中复选框?

Irf*_*med 583 jquery jquery-ui

我的页面中有一些输入文本字段,我使用javascript setVal函数显示它们的值进行编辑,我添加了一个额外的复选框字段,我传递了一个值,

在这里,我想检查是否.set("value",""),然后应该检查此复选框,否则取消选中,

我这样做是因为使用了两个div,但我对此感到不舒服,还有其他解决办法吗?

if(value == 1) {
    $('#uncheck').hide();
    $('#check').show();
} else{
    $('#uncheck').show();
    $('#check').hide();
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*ric 1215

对于jQuery 1.6+:

.attr()已弃用于属性; 使用新的.prop()函数代替:

$('#myCheckbox').prop('checked', true); // Checks it
$('#myCheckbox').prop('checked', false); // Unchecks it
Run Code Online (Sandbox Code Playgroud)

对于jQuery <1.6:

要选中/取消选中复选框,请使用该属性checked并对其进行更改.使用jQuery,您可以:

$('#myCheckbox').attr('checked', true); // Checks it
$('#myCheckbox').attr('checked', false); // Unchecks it
Run Code Online (Sandbox Code Playgroud)

因为你知道,在HTML中,它看起来像:

<input type="checkbox" id="myCheckbox" checked="checked" /> <!-- Checked -->
<input type="checkbox" id="myCheckbox" /> <!-- Unchecked -->
Run Code Online (Sandbox Code Playgroud)

但是,您无法信任.attr()方法来获取复选框的值(如果需要).您将不得不依赖.prop()方法.

  • 一个元素被认为是`checked`,只要它具有`checked`的属性,即使它没有值或者值是'false'或者其他什么.所以`$('#myCheckbox').attr('checked',false);`不会取消选中,你需要`$('#myCheckbox').removeAttr('checked');`. (61认同)
  • @DanielCook和@xpy; 因此使用`prop`,因为它更可靠. (13认同)
  • "id为myCheckbox的多个元素"我死了....... (7认同)
  • @xpy` .attr("checked",false);`在我的浏览器中有效. (4认同)
  • 我认为应该将"jQuery 1.6+"移到这个答案的顶部,以便首先获得当前信息. (4认同)

Roh*_*mar 62

您可以使用prop(),因为在jQuery 1.6之前,.attr()方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致.从jQuery 1.6开始,该.prop()方法提供了一种显式检索属性值的方法,同时.attr()检索属性.

var prop=false;
if(value == 1) {
   prop=true; 
}
$('#checkbox').prop('checked',prop);
Run Code Online (Sandbox Code Playgroud)

简单地说,

$('#checkbox').prop('checked',(value == 1));
Run Code Online (Sandbox Code Playgroud)

片段

$(document).ready(function() {
  var chkbox = $('.customcheckbox');
  $(".customvalue").keyup(function() {
    chkbox.prop('checked', this.value==1);
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<h4>This is a domo to show check box is checked
if you enter value 1 else check box will be unchecked </h4>
Enter a value:
<input type="text" value="" class="customvalue">
<br>checkbox output :
<input type="checkbox" class="customcheckbox">
Run Code Online (Sandbox Code Playgroud)


bil*_*can 27

您可以根据值设置复选框的状态:

$('#your-checkbox').prop('checked', value == 1);
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,价值没有定义. (3认同)