Javascript 我需要将贷款计算器从一个滑块更改为输入文本框

Javascript 我需要将贷款计算器从一个滑块更改为输入文本框,javascript,html,css,Javascript,Html,Css,我有一个贷款计算器,它可以正常工作,直到我将其中一个滑块更改为输入框。当我在javascript中更改属性时,它就是不起作用。我想知道如何使我在js部分的输入有效。因为我的客户希望它变成一个文本框 以下是我的HTML代码片段: <div class="loan-calculator" style="padding-bottom: 1px;"> <div class="loan-calculator__controls

我有一个贷款计算器,它可以正常工作,直到我将其中一个滑块更改为输入框。当我在javascript中更改属性时,它就是不起作用。我想知道如何使我在js部分的输入有效。因为我的客户希望它变成一个文本框

以下是我的HTML代码片段:

           <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();
});