javascript - 一起设置三个输入数字的最大值

标签 javascript jquery html input numbers

我有三个输入数字:

<input min="0" name="cat1" step="1" type="number" max="50" value="0" />            
<input min="0" name="cat2" step="1" type="number" max="50" value="0" />
<input min="0" name="cat3" step="1" type="number" max="50" value="0" />

目前最大值为 50。我希望所有三个的最大值也为 50。

如何使用 javascript 或 jquery 解决这个问题?

最佳答案

此方法对其他输入求和,如果总和 + 当前值大于最大值,它会更改当前输入的值以适应最大值。

例如,尝试在输入框中输入 30、5、20。

var max = 50;
var $inputs = $('input');

function sumInputs($inputs) {
  var sum = 0;
  
  $inputs.each(function() {
    sum += parseInt($(this).val(), 0);
  });

  return sum;
}

$inputs.on('input', function(e) {
  var $this = $(this);
  var sum = sumInputs($inputs.not(function(i, el) {
    return el === e.target;
  }));
  var value = parseInt($this.val(), 10) || 0;
  if(sum + value > max) $this.val(max - sum);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input min="0" name="cat1" step="1" type="number" max="50" value="0" />
<input min="0" name="cat2" step="1" type="number" max="50" value="0" />
<input min="0" name="cat3" step="1" type="number" max="50" value="0" />

关于javascript - 一起设置三个输入数字的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49644837/

相关文章:

javascript - 使用jquery按条件选择元素

javascript - 如何使用JQuery正确获取跨域的xml

jquery - nicEdit 和 MVC 3/jquery 需要字段验证

html - Firefox 和 Safari 中的字体显得较细 - Chrome 中则正常

html - CommonMark 中的制表符是如何解释的?

Javascript 子类别 - 3 层

javascript - typescript :导入模块,导致新模块?

javascript - 输入值到选定的 Id

javascript - 我想添加独立于 HTML 的 jQuery 文件

html - 内联 div 不会听从权威