如何使用 JQuery 更改 onClick 复选框的值?

2023-11-26

在这里,我尝试在单击以下复选框时更改其值。在下面的代码中,我尝试将复选框的值更改为 1,并在未选中时将值更改为 0。但它只需要 false 条件,当取消选中该复选框时,值会更改为 0,但选中时,它不会更改为 1。有什么建议如何解决此问题吗?

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

我真的不明白你为什么要这样做(当未选中复选框时,无论如何都不会提交该复选框的值)。

The checkedDOM 元素上的属性总会告诉您是否已检查。所以你可以得到this.checked(Javascript DOM)或$(this).prop('checked')(jQuery 包装器)。

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

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

or even

onclick="$(this).val(this.checked ? 1 : 0)"

甚至更好,不要使用内联事件处理程序 (like onclick),但使用 jQuery 的事件处理包装器(.on('click') or .click()在旧版本中)。

带有 jQ​​uery 事件处理的 jsFiddle 演示


你的方法有问题

您正在使用$(this).checked获取复选框的状态。 jQuery 对象(由$函数)没有checked财产,所以它会是undefined。在 JavaScript 中,undefined is a falsy值,这就是为什么你的复选框的值总是0.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JQuery 更改 onClick 复选框的值? 的相关文章