我在下面有这个基本计算器,我使用toLocaleString在数字中添加一个分隔符,以便更容易阅读。它在第三个输出上完美运行,但在前两个输出上没有?我有基本的编码技能,所以我不能100%确定如何使用它......
<form oninput="loanval.value=loan.value.toLocaleString(); periodval.value=period.value.toLocaleString(); paymentval.value=Math.floor(loan.value / period.value).toLocaleString()">
<label>Loan Amount</label>
<input type="range" id="loan" name="loan" min="5000" max="400000" step="5000">
<output name="loanval" for="loan">0</output>
<label>Loan Period</label>
<input type="range" id="period" name="period" min="1" max="15">
<output name="periodval" for="period">0</output>
<label>Your monthly repayment will be:
<output name="paymentval">0</output>
</form>
答案 0 :(得分:6)
这是因为默认情况下,您的表单输入为string
,而toLocaleString
适用于数字。因此,要相应地更改它,您必须将loan.value
更改为parseInt(loan.value, 10)
,因为您可以在此fiddle
也就是说,Math
js函数隐含地为您执行上面的转换,这就是为什么您的上一个输出按预期工作的原因。