我有多个范围滑块在重力形式。我想计算用户选择的总数并显示在屏幕上。jQuery可以工作,并且做它应该做的事情。
然而,我需要每个滑块的初始值为零,然后停止它们超过100的总数,但是如果我使用jQuery将每个滑块的初始值设置为零,如其他地方所建议的那样,#total的值始终为零。如何将初始值设置为零,同时仍然获得#total以显示所有滑块值的总和?
$('.slider').on('change', function() {
var sum = 0;
$('.slider').each(function() {
sum += isNaN(this.value) || $.trim(this.value) === '' ? 0 : parseFloat(this.value);
});
$('#total').text(sum);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="total"></p>
<input name="input_1" id="input_1_1" type="number" step="1" min="0" max="100" value="50" class="slider" />
<input name="input_2" id="input_1_2" type="number" step="1" min="0" max="100" value="50" class="slider" />
<input name="input_3" id="input_1_3" type="number" step="1" min="0" max="100" value="50" class="slider" />
2条答案
按热度按时间rta7y2nd1#
您可以使用Gravity Forms中字段的“高级”选项卡下的“默认值”将数字字段的初始值设置为0
ajsxfq5m2#
不知道滑块是如何相关的,但
type="range"
.reduce()
将列表(数组或集合)缩减为不同的类型(NumberMath.min()
将您的值限制为最大值100
即使有了这个解决方案(因为你没有解释你实际上想要什么),让用户无用地滑动一些东西也是一个糟糕的UX-看到值结果在 100 处没有改变。我将把它留给您来确定实际的UI需求。