如何使用 JQuery 更改 onClick 复选框的值?
在这里,我尝试在单击以下复选框时更改其值。在下面的代码中,我尝试将复选框的值更改为 1,并在未选中时将值更改为 0。但它只需要 false 条件,当取消选中该复选框时,值会更改为 0,但选中时,它不会更改为 1。有什么建议如何解决此问题吗?
<input type="checkbox" id="read" name="permission[]" onClick="($(this).checked)?$(this).attr('value',1):$(this).attr('value',0)"/>
Here I am trying to change the value of the following check box while clicking on it. In the code below I tried to change the value of the checkbox to 1 and change the value to 0 when unchecked. But it takes only the false condition, when the checkbox is unchecked the value changes to 0 but when checked its not changing to 1. Any suggestions how to fix this out ?
<input type="checkbox" id="read" name="permission[]" onClick="($(this).checked)?$(this).attr('value',1):$(this).attr('value',0)"/>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我真的不明白你为什么要这样做(当未选中该复选框时,无论如何都不会提交该复选框的值)。
DOM 元素上的
checked
属性 将始终告诉您它是否已检查。因此,您可以获取this.checked
(Javascript DOM) 或$(this ).prop('checked')
(jQuery 包装器)。如果您确实需要,您应该这样做:
或者甚至
甚至更好,不要使用内联事件处理程序(如
onclick
),但使用 jQuery 的事件处理包装器(.on('click')
或 < code>.click() 在旧版本中)。jsFiddle 演示与 jQuery 事件处理
你的方法的问题
你正在使用
$(this).checked< /code> 获取复选框的状态。 jQuery 对象(由
$
函数返回的对象)没有checked
属性,因此它将是undefined
。在 Javascript 中,undefined
是一个 falsy 值,这就是为什么您的复选框的值始终为0
。I don't really understand why you would want to do this (the checkbox's value won't be submitted anyways when it's unchecked).
The
checked
property on the DOM element will always tell you whether it is checked or not. So you can either getthis.checked
(Javascript DOM) or$(this).prop('checked')
(jQuery wrapper).If you really need to, you should do this:
or even
or even better, don't use inline event handlers (like
onclick
), but use jQuery's event handling wrappers (.on('click')
or.click()
in older versions).jsFiddle Demo with jQuery event handling
The problem with your approach
You are using
$(this).checked
to get the state of your checkbox. The jQuery object (the one that's returned by the$
function) does not have achecked
property, so it will beundefined
. In Javascript,undefined
is a falsy value, that's why your checkbox's value is always0
.您可以使用这个简单的点击功能来实现它。
HTML:
Jquery:
You can use this simple click function to achieve it.
HTML:
Jquery: