如何使用JQuery更改Click上复选框的值
How to change the value of a check box onClick using JQuery?
在这里,我试图在点击下面复选框的同时更改它的值。在下面的代码中,我试图将复选框的值更改为1,并在取消选中时将值更改为0。但它只接受false条件,当复选框未选中时,值将变为0,但当选中时,它不会变为1。有什么建议可以解决这个问题吗?
<input type="checkbox" id="read" name="permission[]" onClick="($(this).checked)?$(this).attr('value',1):$(this).attr('value',0)"/>
我真的不明白你为什么要这么做(复选框的值在取消选中时无论如何都不会提交)
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()
)。
jsFiddle演示与jQuery事件处理
你的方法有问题
您正在使用$(this).checked
来获取复选框的状态。jQuery对象($
函数返回的对象)没有checked
属性,因此它将是undefined
。在Javascript中,undefined
是一个falsy值,这就是为什么您的复选框的值总是0
。
// o = object
function get(o) {
( $(o).val() == 0 ) ? $(o).val(1) : $(o).val(0);
// alert( $(o).val() );
console.log( $(o).val() );
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="permission[]" onClick="get(this)" value="0"/>
您可以使用这个简单的点击功能来实现它
HTML:
<input type="checkbox" id="read" name="permission[]" value="0"/>
Jquery:
$("#read").click(function() {
if($("#read").val()==0)
{
$("#read").val(1);
}
else
{
$("#read").val(0);
}
alert($("#read").val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="read" name="permission[]" value="0"/>
Click the check box to toggle the value 0 and 1
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- Javascript:函数bind.click&对于每个复选框
- 如何使用ng-click在angularjs控制器中动态地选中/取消选中复选框
- HTML 复选框 Click() 使用 jQuery 返回 FALSE 或 TRUE,而不是 READONLY 或 DI
- $.click() 和 $.trigger() 不会激活复选框的 onchange 函数
- Angularjs,ng-click,如何在MongoDB中放置复选框数组
- 如何使用JQuery更改Click上复选框的值
- 在ng-click中,复选框返回false而不是true
- Angular的复选框输入ng-click从未被调用
- 甚至在调用click处理程序之前,复选框就被选中了
- jQuery触发器('click')不触发复选框上的.click事件
- 在Firefox中,click()设置后不运行复选框.Disabled = false
- 单击输入[复选框]'s标签将触发两次父's click事件(knockout)
- 当单击淘汰表行中的复选框时,tr click事件将覆盖复选框状态更改
- HTMLElement.click()上的复选框在firefox中不起作用
- 在复选框上.click和.change有什么区别?
- 如何创建一个selectAll复选框,并在每个复选框上触发ng-click的每个函数