Javascript “的返回值”;勾选“;从更改事件

Javascript “的返回值”;勾选“;从更改事件,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我声明了一个变量,希望将复选框的状态传递给dhcp\u addr变量,并在选中复选框时将其设置为1,在未选中复选框时将其设置为0。在向变量返回值时需要一些帮助 var dhcp_addr = $('#dhcp').change(function () { if(dhcp.checked) { console.log("checked"); } else { console.log("unchecked"); } }); 您不能从函数中“返回”它,因为任何时候都可能发

我声明了一个变量,希望将复选框的状态传递给
dhcp\u addr
变量,并在选中复选框时将其设置为1,在未选中复选框时将其设置为0。在向变量返回值时需要一些帮助

var dhcp_addr = $('#dhcp').change(function () {
  if(dhcp.checked) {
    console.log("checked");
  } else {
    console.log("unchecked");
  }
});
您不能从函数中“返回”它,因为任何时候都可能发生更改。相反,您可以在发生更改时重新分配该值

var dhcp_addr;
$('#dhcp').change(function() {
  if (this.checked) {
    dhcp_addr = 1;
  } else {
    dhcp_addr = 0;
  }
});
尽管如此,如果对
true
false
值使用
1
0
,我建议更直接地使用这些值

dhcp_addr = this.checked;

您可以使用此代码简化它

var dhcp_addr;
$('#dhcp').change(function() {
 dhcp_addr = +this.checked;
});

因此,
this.checked
是布尔值,
+true
转换为数字(1),
+false
转换为0。

这是我提出的最简单的方法:

var dhcp_addr;

$("#dhcp").change(function () {
  dhcp_addr = this.checked ? 1 : 0;
});

请尝试下面的代码片段:

var dhcp_addr=$('#dhcp').change(function(){
警报($('#dhcp')。为(':checked')?1:0;
});


选中
,只需在函数中更改
dhcp\u addr
?比如,
dhcp\u addr=dhcp.checked或者如果需要1/0,
dhcp\u addr=dhcp.checked?1 : 0;为什么要使用
$('#dhcp')。是否(':checked')
?它的效率远不如
这个。选中了
。完全同意你的看法。它应该是
var dhcp_addr=$('#dhcp').change(function(){alert($(this).is(':checked')?1:0);})