如何使用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