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

发布于 2025-01-02 00:37:49 字数 290 浏览 0 评论 0原文

在这里,我尝试在单击以下复选框时更改其值。在下面的代码中,我尝试将复选框的值更改为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

森罗 2025-01-09 00:37:49

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

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')< 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 get this.checked (Javascript DOM) or $(this).prop('checked') (jQuery wrapper).

If you really need to, you should do this:

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

or even

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

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 a checked property, so it will be undefined. In Javascript, undefined is a falsy value, that's why your checkbox's value is always 0.

¢蛋碎的人ぎ生 2025-01-09 00:37:49
// 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"/>

// 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"/>

深爱不及久伴 2025-01-09 00:37:49

您可以使用这个简单的点击功能来实现它。

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

You can use this simple click function to achieve it.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文