我做了一个小的计算器,我想在那里的总和是以货币格式显示在只读输入文本。因为我是新的javascript(和这个论坛),我不能让它工作。我认为我下面的代码会工作。谁能给予我一些如何使它工作的指针?
<h2>Calculator/h2>
<input
type="text"
id="number1"
value="0"
onchange="summa.value = (number1.value*1) + (number2.value*1)"
/>
<br>
<input
type="text"
id="number2"
value="0"
onchange="summa.value = (number1.value*1) + (number2.value*1)"
/>
<br/><br/>
<input
type="text"
readonly="readonly"
id="summa"
value="0"
onchange="this.value.toLocaleString("sv-SE", {
style:"currency",
currency:"SEK",
currencyDisplay:"symbol",
maximumFractionDigits: 0
});"
/>
1条答案
按热度按时间vmpqdwk31#
你发布的代码有很多错别字,但是它"不工作"的主要原因是对输入的程序更改不会触发
change event
,将你的方法抽象到它自己的脚本中,然后适当地处理更改并更新总数会清楚得多。下面是一个将逻辑抽象为html和单独脚本的最小示例。输入已更改为
type="number"
以避免输入非数字值。然后脚本使用getElementById
查询三个输入,并使用addEventListener
将change
侦听器附加到两个接受输入的侦听器。最后,声明了一个函数,用格式化后的值更新第三个输入的值。如果你觉得你 * 需要 * 做这一切内联你可以应用同样的逻辑,但你会立即注意到重复代码的数量。
或者,您可以包含一个内联脚本作为一个不错的折衷方案。