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

Sht*_*ley 0 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>
Run Code Online (Sandbox Code Playgroud)

Dom*_*nik 6

这是因为默认情况下,您的表单输入是一个string并且toLocaleString可以处理数字.所以,要相应地改变它,你必须改变你的loan.value方式parseInt(loan.value, 10),你可以在这个小提琴中看到

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