Javascript 如何使用JQuery在单击时更改复选框的值?
在这里,我试图在单击以下复选框时更改其值。在下面的代码中,我尝试将复选框的值更改为1,未选中时将值更改为0。但它只接受假条件,当复选框未选中时,值更改为0,但选中时,值未更改为1。有什么建议可以解决这个问题吗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)"/> 我真的不明白
<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());
};代码>
通常,您不想更改复选框(或单选按钮)的值。。。(见贴出的答案)。谢谢你给了我最好的答案,让我不用再浪费一天时间去搜索了