如何根据是否选中复选框来更改变量

How to change variable based on checkbox being checked or not?

本文关键字:改变 变量 复选框 何根 是否      更新时间:2024-05-18

我有一个这样的复选框。。。

 <input type="checkbox" id="something" name="something" value="25" data-val="25" checked="checked" class="option">
    <label for="something">Something</label>

我想要javascript/jquery代码,每次选中或取消选中复选框时,它都会查看是否已选中,如果已选中,则赋值25,如果未选中,则赋0。然而,当我通过检查/取消检查进行测试时,它只是不断地吐出25。为什么我取消选中时它不更改为0?你知道我做错了什么吗?

$( document ).ready(function() {
    $('.option').on('change', function() {
       if ($('#something').attr('checked')) {
          var something = 25;
      } else {
          var something = 0;
      }
      console.log(something);
    });
});

.attr()方法返回string"checked"-复选框的初始状态,该状态不变
它将始终被评估为true,并且if condition将始终运行。

为了检索和更改DOM属性,或表单元素的禁用状态,请使用.pr()方法。

因此,使用.prp()可以获得true/false

$('.option').on('change', function() {
   var something;
   if ($(this).prop('checked')) {
        something=25;
      } 
    else {
        something = 0;
      }
        console.log(something);
 });

或者,如果使用返回boolean.is()方法检查checkbox,则可以检查

$('.option').on('change', function() {
      var something;
       if ($(this).is(':checked')) {
          something=25;
      } else {
           something = 0;
      }
      console.log(something);
 });