如何使用JQuery更改onClick复选框的值?
在这里,我试图在单击它时更改以下复选框的值。 在下面的代码中,我尝试将复选框的值更改为1,并在取消选中时将值更改为0。 但它只需要错误的条件,当取消选中复选框时,值会更改为0但是当选中它时不会更改为1.有任何建议如何解决这个问题?
我真的不明白你为什么要这样做(当取消选中时,复选框的值不会被提交)。
DOM元素上的checked
属性将始终告诉您是否已选中它。 所以你可以得到this.checked
(Javascript DOM)或$(this).prop('checked')
(jQuery包装器)。
如果你真的需要,你应该这样做:
onclick="$(this).attr('value', this.checked ? 1 : 0)"
甚至
onclick="$(this).val(this.checked ? 1 : 0)"
或者更好的是, 不要使用内联事件处理程序 (如onclick
),而是使用jQuery的事件处理包装器(旧版本中的.on('click')
或.click()
)。
使用jQuery事件处理的jsFiddle演示
您的方法存在问题
您正在使用$(this).checked
来获取复选框的状态。 jQuery对象(由$
函数返回的对象)没有checked
属性,因此它将是undefined
。 在Javascript中, undefined
是一个假值,这就是你的复选框值始终为0
。
通常,您不希望更改复选框(或单选按钮)的value属性。 这会在Web应用程序中引发难以跟踪的错误。
如果要在选中某个字段时为其指定特定值,还可以考虑引入隐藏输入并将值赋给它,而不是复选框。
您可以使用此简单的单击function来实现它。
HTML:
jQuery的:
$("#read").click(function() { if($("#read").val()==0) { $("#read").val(1); } else { $("#read").val(0); } alert($("#read").val()); });
Click the check box to toggle the value 0 and 1