为什么这不起作用? (某些输出上的toLocaleString)

时间:2016-03-23 14:03:49

标签: javascript jquery html5

我在下面有这个基本计算器,我使用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>

1 个答案:

答案 0 :(得分:6)

这是因为默认情况下,您的表单输入为string,而toLocaleString适用于数字。因此,要相应地更改它,您必须将loan.value更改为parseInt(loan.value, 10),因为您可以在此fiddle

中看到

也就是说,Math js函数隐含地为您执行上面的转换,这就是为什么您的上一个输出按预期工作的原因。