在 jQuery 中使用复选框来切换 2 个数值

Posted

技术标签:

【中文标题】在 jQuery 中使用复选框来切换 2 个数值【英文标题】:Use checkbox in jQuery to toggle 2 numeric values 【发布时间】:2021-10-15 07:34:38 【问题描述】:

当复选框被选中和取消选中时,我将如何更改以下代码以在非零值和零值之间切换?见

$(document).ready(function() 
  $('input[type="checkbox"]').click(function() 
    var inputValue = $(this).attr("value");
    $("." + inputValue).toggle();
  );
);
.box 
  display: none;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <label><input type="checkbox" name="colorCheckbox" value="n1"> num 1</label>
  <label><input type="checkbox" name="colorCheckbox" value="n2"> num 2</label>
  <label><input type="checkbox" name="colorCheckbox" value="n3"> num 3</label>
</div>
<div class="n1 box">55000</div>
<div class="n2 box">200</div>
<div class="n3 box">300</div>

https://jsfiddle.net/hcanning/53ye8wf7/

【问题讨论】:

你想达到什么目的,真的不懂问题 它用于切换成本。用户检查产品复选框并显示价格,例如10 美元。未选中时,我希望该值为 0,因此我可以将已选中和未选中的产品值相加,而不会得到 NaN。这些值在 div 中,例如 &lt;div id="cost1"&gt;10&lt;/div&gt; 您不能为复选框添加值,因为它是布尔值,表示为真或假。我建议您进行隐藏输入,然后为其添加价值。 我的最终目标是让这个想法发挥作用:jsfiddle.net/hcanning2012/20jrgq6e/18 ...用户透露价格,然后他们就会被总计。我将价格 div 中的值汇总到 Total div 【参考方案1】:

你可以这样做,得到每个复选框的总和,根据需要进行调整

$(document).ready(function() 
var sum = 0;
  $('input[type="checkbox"]').change(function() 
    var inputValue = $(this).attr("value");

   if(this.checked) 
       sum = parseInt(sum) + parseInt($("." + inputValue).text());
   else 
       sum = parseInt(sum) - parseInt($("." + inputValue).text());
    
    $("#sum").text(sum);

    $("." + inputValue).toggle();
  );
);
.box 
  display: none;
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   


<table >
<tr> 
<td> <label><input type="checkbox" name="colorCheckbox" value="n1"> Show Price</label></td><td><div class="n1 box">55000</div></td>
</tr><tr> 
<td> <label><input type="checkbox" name="colorCheckbox" value="n2"> Show Price</label></td><td><div class="n2 box">200</div></td>
</tr><tr> 
<td> <label><input type="checkbox" name="colorCheckbox" value="n3"> Show Price</label></td><td><div class="n3 box">300</div></td>
</tr>

<tr> 
<td > Total: </td><td><div id="sum">0</div></td>
</tr>

【讨论】:

谢谢。当复选框被选中时,它的目的是设置值 55000(在示例中)&lt;div class="n1 box"&gt;55000&lt;/div&gt;,如果未选中该复选框,则 div 为空&lt;div class="n1 box"&gt;&lt;/div&gt; 所以当它被求和时我得到一个 NaN。我试图在未选中复选框时将该空 div 设置为 0,以便我可以正确总计。此想法是,在选中该复选框时,使用$('.n1').html("55000"); 987654327 @在jQuery中设置55000。这是我的最终目标:jsfiddle.net/hcanning2012/20jrgq6e/22 你不会得到 NaN,因为它会从 var sum 中减去,所以不需要设置为 0,只需在要显示总和的地方使用 id="sum" 的 div,我也解析为对这些值进行整数处理,因此不会出现 NaN 检查编辑为表格,以反映 jsfiddle 只要你遵循你的模式,你可以添加任意多的行 好的。非常感谢。

以上是关于在 jQuery 中使用复选框来切换 2 个数值的主要内容,如果未能解决你的问题,请参考以下文章

Jquery中复选框选中取消实现文本框的显示隐藏

如果 php 和 jQuery 选中或未选中,则在 php 中动态创建复选框值

js中判断复选款是否选中

无论如何用数组填充 UITableView 但保留复选标记?

如何在 jQuery 移动列表视图中切换复选框

向不同部分的单元格添加多个复选标记,并将其状态保存在Swift iOS中