Javascript 我需要将贷款计算器从一个滑块更改为输入文本框
我有一个贷款计算器,它可以正常工作,直到我将其中一个滑块更改为输入框。当我在javascript中更改属性时,它就是不起作用。我想知道如何使我在js部分的输入有效。因为我的客户希望它变成一个文本框 以下是我的HTML代码片段:Javascript 我需要将贷款计算器从一个滑块更改为输入文本框,javascript,html,css,Javascript,Html,Css,我有一个贷款计算器,它可以正常工作,直到我将其中一个滑块更改为输入框。当我在javascript中更改属性时,它就是不起作用。我想知道如何使我在js部分的输入有效。因为我的客户希望它变成一个文本框 以下是我的HTML代码片段: <div class="loan-calculator" style="padding-bottom: 1px;"> <div class="loan-calculator__controls
<div class="loan-calculator" style="padding-bottom: 1px;">
<div class="loan-calculator__controls-list">
<div class="loan-calculator__control loan-calculator-control">
<span class="loan-calculator-control__caption">My Spendings: <b>RM <span data-money-range-value></span></b></span>
<!-- <div class="loan-calculator-control__range loan-calculator-range-slider loan-calculator-range-slider--money" data-money-range-slider></div> -->
<input type="number" class="form-control" placeholder="Spendings" aria-label="spendings" spendings-input>
<div class="loan-calculator-control__help-values">
<div class="loan-calculator-control__min-value">Min Spendings: RM 0</div>
<div class="loan-calculator-control__max-value">Maximum Spendings: RM 10,000+</div>
</div>
</div>
<div class="loan-calculator__control loan-calculator-control">
<span class="loan-calculator-control__caption">Merchant: <b><span data-months-range-value>3</span> <span data-months-range-measure></span></b></span>
<div class="loan-calculator-control__range loan-calculator-range-slider loan-calculator-range-slider--months" data-months-range-slider></div>
<div class="loan-calculator-control__help-values">
<div class="loan-calculator-control__min-value">Min Percentage: 0%</div>
<div class="loan-calculator-control__max-value">Maximum Percentage: 200%</div>
</div>
</div>
</div>
</div>
所以你有两个滑块——一个用于金钱,另一个用于数月?最初是的。但是现在我想将money滑块更改为一个输入框,而另一个滑块将显示您的控件没有任何id(或name)标记。您应该让他们识别每个控件。因此,例如,如果货币滑块的id=money,只需用该id注释掉滑块代码,替换为
,并为其提供相同的id。您还可以检查min=0和max=10000条件。友好的“提醒”:虽然您可能还没有注释的能力,人们通常不赞成仅仅为了对问题发表评论而给出答案。
var moneyRangeSliderElem = document.querySelector("[spendings-input]");
var moneyRangevalueElem = document.querySelector("[data-money-range-value]");
var monthsRangeSliderElem = document.querySelector(
"[data-months-range-slider]"
);
var monthsRangeValueElem = document.querySelector("[data-months-range-value]");
var monthsRangeMeasureElem = document.querySelector(
"[data-months-range-measure]"
);
var resultValueElem = document.querySelector("[data-result-value]");
// noUiSlider.create(moneyRangeSliderElem, {
// start: [5000],
// step: 1,
// connect: [true, false],
// format: wNumb({
// decimals: 0
// }),
// range: {
// min: 0,
// max: 10000
// }
// });
noUiSlider.create(monthsRangeSliderElem, {
start: [30],
step: 1,
connect: [true, false],
format: wNumb({
decimals: 0
}),
range: {
min: 1,
max: 200
}
});
function calcPayment() {
var moneyValue = parseInt(moneyRangeSliderElem, 10);
var monthsValue = parseInt(monthsRangeSliderElem.noUiSlider.get(), 10);
console.log(-pmt(0.24/12, monthsValue, moneyValue))
resultValueElem.textContent = numberFormatter.format(
moneyValue * monthsValue * 0.01
);
}
moneyRangeSliderElem.on("input", function(values, handle) {
moneyRangevalueElem.textContent = numberFormatter.format(values[handle]);
calcPayment();
});
monthsRangeSliderElem.noUiSlider.on("update", function(values, handle) {
monthsRangeValueElem.textContent = values[handle];
monthsRangeMeasureElem.textContent = wordForm(values[handle], [
"%",
"%",
"%"
]);
calcPayment();
});