使用jquery预设html复选框

时间:2013-07-28 23:52:03

标签: javascript jquery checkbox

此代码,

$("#x").removeAttr("checked").removeAttr("unchecked").attr("foo","bar");

此html输入中的结果:

<input type="checkbox" id="x" foo="bar">

但是这个:

$("#x").removeAttr("checked").removeAttr("unchecked").attr("checked","true");

结果如下:

<input type="checkbox" id="x" checked="checked">

发生了什么事?尽管使用了checked =“checked”属性,该复选框仍然未经检查。

切换HTML输入的checked属性的最佳方法是什么?

3 个答案:

答案 0 :(得分:5)

要切换选中的使用.prop()而不是.attr()

$('#x').prop('checked',true);
$('#x').prop('checked',false);

如果您想要另一个按钮来切换复选框,您可以使用:

var $x  = $('#x'); // don't query every click - Credit: Roko :) 
$('.button').click(function(){      
    $x.prop('checked', !$x.is(':checked'));
})

答案 1 :(得分:1)

checked="true"是不正确的HTML,因此JQuery隐式将其转换为checked="checked"。另一个答案提供了更好的解决方案,因为在这种情况下不必使用removeAttr

答案 2 :(得分:0)

$('#x')[0].checked = true; // true / false

http://jsbin.com/ivufen/1/edit

肘节:

var $cbx = $('#x')[0];

$('#toggle').click(function(){
  $cbx.checked = !$cbx.checked;
});

http://jsbin.com/ivufen/3/edit