【发布时间】:2021-06-16 05:38:19
【问题描述】:
我有一些范围滑块和输入字段。从中我得到一些方程,现在我想用它们的 ID 减去这些动态数字。下面是代码,但我得到的是 NaN 值。下面的步骤,我已经完成了。
- 从范围滑块和 .averagetime 的乘积中得到 #totalavgtime
- 从范围滑块和 .radio-roi 下一个输入值的乘积中获取 #timetoproduce。
- 现在尝试减去 #totalavgtime - #timetoproduce 但在 #timesaving 中得到 NaN 值。
$(document).ready(function() {
$(".range").on("change", function() {
var mult = 0;
$('.range').each(function(i) {
var selector_next = parseInt($(".averagetime:eq(" + i + ")").attr("value"))
mult += parseInt($(this).val()) * selector_next //multply..
console.log($(".averagetime:eq(" + i + ")").attr("value"), $(this).val())
})
$("#totalavgtime").val(mult)
})
});
$(document).ready(function() {
$('.range').on('change', function() {
let n = $(this).attr('id').match(/\d+/g)[0];
let total = 0;
let checkVal = $('.radio-roi:checked').next('input').val();
let multiplyFactor = parseFloat(checkVal);
console.log(multiplyFactor)
$('.range').each(function() {
total += (parseFloat($(this).val()) * multiplyFactor);
});
$('#timetoproduce').value(total);
})
});
$(document).ready(function() {
var txt1 = parseInt(document.getElementById("totalavgtime").value);
var txt2 = parseFloat(document.getElementById("timetoproduce").value);
var res = document.getElementById("timesaving");
Number(txt1);
Number(txt2);
//Substract that
res.value = txt1 - txt2;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<input type="radio" id="" class="radio-roi" name="plan" value="plus" checked>
<input type="text" value="2.5" id="actualtime2" class="hiden-actual-time" disabled><br>
<input type="radio" id="" class="radio-roi" name="plan" value="pro">
<input type="text" value="3" id="actualtime3" class="hiden-actual-time" disabled><br>
<input type="text"value="6" id="avgtime-id" class="averagetime"disabled><br>
<input type="range" name="slider-1" min="0" max="12" value="0" step="1" class="range" id="range-slider"><br>
<input type="text"id="totalavgtime" value="" disabled><br>
<input type="text"id="timetoproduce" value="" disabled><br>
<input type="text"id="timesaving" value="" disabled><br>
【问题讨论】:
-
只有一个 document.ready 作为第一步。前两个还在运行吗?检查console.log
-
只使用一个 (
document.ready) 是个好主意,但是没有人能正确阅读这个复杂的 JS。第一个运行 stackoverflow.com/questions/67985024/… 一个是这样完成的
标签: javascript html jquery input range