Javascript 如何使用JQuery在单击时更改复选框的值?

Javascript 如何使用JQuery在单击时更改复选框的值?,javascript,jquery,forms,dom-events,ternary-operator,Javascript,Jquery,Forms,Dom Events,Ternary Operator,在这里,我试图在单击以下复选框时更改其值。在下面的代码中,我尝试将复选框的值更改为1,未选中时将值更改为0。但它只接受假条件,当复选框未选中时,值更改为0,但选中时,值未更改为1。有什么建议可以解决这个问题吗 <input type="checkbox" id="read" name="permission[]" onClick="($(this).checked)?$(this).attr('value',1):$(this).attr('value',0)"/> 我真的不明白

在这里,我试图在单击以下复选框时更改其值。在下面的代码中,我尝试将复选框的值更改为1,未选中时将值更改为0。但它只接受假条件,当复选框未选中时,值更改为0,但选中时,值未更改为1。有什么建议可以解决这个问题吗

<input type="checkbox" id="read" name="permission[]" onClick="($(this).checked)?$(this).attr('value',1):$(this).attr('value',0)"/>

我真的不明白您为什么要这样做(复选框的值在未选中时不会被提交)

系统将始终告诉您是否已检查。因此,您可以获取
this.checked
(Javascript DOM)或(jQuery包装器)

如果确实需要,您应该这样做:

onclick="$(this).attr('value', this.checked ? 1 : 0)"
甚至

onclick="$(this).val(this.checked ? 1 : 0)"
或者更好(比如
onclick
),但是使用jQuery的事件处理包装器(或者在旧版本中)


你的方法有问题吗
您正在使用
$(this)。选中
可获取复选框的状态。jQuery对象(由
$
函数返回的对象)没有
checked
属性,因此它将
未定义。在Javascript中,
undefined
是一个错误的值,这就是为什么复选框的值总是
0

您可以使用这个简单的单击函数来实现它

HTML:

<input type="checkbox" id="read" name="permission[]" value="0"/>

单击复选框以切换值0和1
//o=object
函数get(o){
($(o.val()==0)?$(o.val(1):$(o.val(0);
//警报($(o.val());
log($(o.val());
};


通常,您不想更改复选框(或单选按钮)的
值。。。(见贴出的答案)。谢谢你给了我最好的答案,让我不用再浪费一天时间去搜索了