jQuery,如果所有值的总和更大,我如何禁用所有其他输入字段" x"

时间:2017-03-09 00:51:07

标签: javascript jquery

jQuery,如果所有值的总和超过x

,则禁用同一类上的所有其他输入

如何禁用" HTML输入框"当任何输入框的总和有值时,它不是空节点。如果总和大于x,我想计算任何输入字段的一些并禁用任何其他字段。

例如这段代码: 第二场= 5 第四场= 10,

总和 15 第一个字段和第三个字段应禁用



$('.inputReward').on('input',function() {

  //$(this).next().not(this).prop('disabled', this.value.length)
  var sum=0;

  $('.inputReward').each(function () {
    sum += +$(this).val();
    if(sum>15) //15 is maximum value
      $(this).next().not(this).prop('disabled', true);
    else
      $(this).next().not(this).prop('disabled', false);
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" name="sRewards" value="" class="inputReward" />
<input type="number" name="sReward1" value="" class="inputReward" />
<input type="number" name="sReward2" value="" class="inputReward" />
<input type="number" name="sReward3" value="" class="inputReward" />
&#13;
&#13;
&#13;

但是现在我只能禁用最后一个非空节点的所有下一个输入字段。

1 个答案:

答案 0 :(得分:0)

我认为这是我最好的解决方案:)

$('.inputReward').on('input',function() {

  //$(this).next().not(this).prop('disabled', this.value.length)
  var sum=0;

  $('.inputReward').each(function () {
    sum += +$(this).val();
  });
  if(sum>=15)
    $(this).siblings().not(this).prop('disabled', true);
  else
    $(this).siblings().not(this).prop('disabled', false);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" name="sRewards" value="" class="inputReward" />
<input type="number" name="sReward1" value="" class="inputReward" />
<input type="number" name="sReward2" value="" class="inputReward" />
<input type="number" name="sReward3" value="" class="inputReward" />