【发布时间】:2018-04-13 08:43:36
【问题描述】:
我想在选中复选框时为输入值添加 +1。我已经尝试过这段代码,但在 a 循环内不起作用。我需要在 php 循环中进行这项工作,因此,只需要在连接的输入上工作。
这是我的代码
<div class="mix ">
<div class="img-card">
<img src="<?= $product->image_card ?>">
</div>
<p><?= $product->sub_title; ?></p>
<div class="azione">
<p>
Check
<input type="checkbox" name="PRD-<?= $product->sub_title ?>" id="<?= $product->sub_title ?>" value="SI" />
</p>
<div class="quantity-form">
<span class="input-holder-form"><span class="tiny-button-form plus">+</span>
<input class="contatore" type="number" min="0" name="QNT-<?= $product->sub_title ?>" value="0">
<span class="tiny-button-form minus"><strong>–</strong></span>
</div>
</div>
给我这个html:
<div class="mix">
<div class="img-card">
<img src="...">
</div>
<p>P Name</p>
<div class="azione">
<p>
Check
<input type="checkbox" name="PRD-name" id="P-ID" value="SI">
</p>
<div class="quantity-form">
<span class="input-holder-form"><span class="tiny-button-form plus">+</span><span class="tiny-button-form plus">+</span>
<input class="contatore" type="number" min="0" name="QNT-NIA - front desk" value="0">
<span class="tiny-button-form minus"><strong>–</strong></span>
<span class="tiny-button-form minus"><strong>–</strong></span></span></div>
</div>
</div>
这是我的 jQuery
$('input:checkbox').change(function(){
if($(this).is(":checked")) {
$(this).closest('.mix').addClass("checked");
var $input = $('.mix.checked .contatore');
var num = parseInt($input.val());
var newNum = num + 1;
$input.val(newNum);
} else {
$(this).closest('.mix').removeClass("checked");
var $input = $('.mix .contatore');
var num = parseInt($input.val());
var newNum = num * 0;
$input.val(newNum);
}
});
当我单击复选框时,将输入数字加 1,当我单击复选框时,将归零。
但是如何让它只在连接的盒子上工作而不是在所有盒子上工作呢?
可能不必使用class checked,但我已经尝试使用closest、find、children 或parent。
【问题讨论】:
-
您的
else条件逻辑有点奇怪。它只会产生0... 的值 -
当您执行
x * 0时,它始终是= 0。因此,当您取消选中复选框时,它会归零。 -
您只需要在每个复选框和输入字段中添加 id 或特定类。这比使用
$('input:checkbox')更容易 -
在其他情况下,我认为他们只是感到困惑。你为什么不把零像这样
$input.val(0);在复选框的选中和取消选中尝试使用一些html属性。为每个框和输入字段添加具有递增值的 id 或类 -
不能添加我的解决方案@MarcoRomano
标签: javascript php jquery html input