我有以下表格。使用按钮,文本字段中的值应该增加或减少。减少按钮工作正常,但增加按钮只是在数字的末尾添加“10”,因此100
将变为10010
,而不是110
。有人能让我知道如何解决这个问题吗?
<form name="hello" id="hello">
<table border=0>
<tr>
<td width=200>
<input type=text id="input" style="height: 30px; width: 200px" name=amount value=5>
</td>
<td>
<table border=0>
<tr height=12><td width=20>
<input type=button value="+" style="height: 15px; width: 25px; text-align:center; vertical-align:center; font-size:8px;" onClick="javascript:this.form.amount.value+=10;">
</td></tr>
<tr height=12><td width=20>
<input type=button value="-" style="height: 15px; width: 25px; text-align:center; vertical-align:center; font-size:8px;" onClick="javascript:this.form.amount.value-=10;">
</td></tr>
</table>
</td>
</tr>
</table>
</form>
答案 0 :(得分:2)
您的javascript将其视为字符串连接。将值解析为int,进行数学运算,然后设置值。
onClick for +
按钮
onClick="javascript: this.form.amount.value = parseInt(this.form.amount.value, 10) + 10;"
答案 1 :(得分:1)
以下是一些可行的代码:
<form name="hello" id="hello">
<table border=0>
<tr>
<td width=200>
<input type=text id="input" style="height: 30px; width: 200px" name=amount value=5>
</td>
<td>
<table border=0>
<tr height=12><td width=20>
<input type=button value="+" style="height: 15px; width: 25px; text-align:center; vertical-align:center; font-size:8px;" onClick="javascript:this.form.amount.value=parseInt(this.form.amount.value,10)+10;">
</td></tr>
<tr height=12><td width=20>
<input type=button value="-" style="height: 15px; width: 25px; text-align:center; vertical-align:center; font-size:8px;" onClick="javascript:this.form.amount.value=parseInt(this.form.amount.value,10)-10;">
</td></tr>
</table>
</td>
</tr>
</table>
</form>
答案 2 :(得分:1)
parseInt()是必需的。
使用此
<form name="hello" id="hello">
<table border=0>
<tr>
<td width=200>
<input type=text id="input" style="height: 30px; width: 200px" name=amount value=5>
</td>
<td>
<table border=0>
<tr height=12><td width=20>
<input type=button value="+" style="height: 15px; width: 25px; text-align:center; vertical-align:center; font-size:8px;" onClick="javascript: this.form.amount.value = parseInt(this.form.amount.value) + 10;">
</td></tr>
<tr height=12><td width=20>
<input type=button value="-" style="height: 15px; width: 25px; text-align:center; vertical-align:center; font-size:8px;" onClick="javascript:this.form.amount.value-=10;">
</td></tr>
</table>
</td>
</tr>
</table>
</form>
答案 3 :(得分:0)
onClick事件的代码应为:javascript:this.form.amount.value=Number(this.form.amount.value)+10;
Javascript没有PHP之类的字符串连接运算符,因此在对其进行任何算术运算之前必须将其强制转换为数字。
答案 4 :(得分:0)
您需要将this.form.amount.value
类型转换为Integer,否则它将被视为String。请使用parseInt()
。
答案 5 :(得分:0)
Javascript将文本字段的值解释为字符串。您可以使用parseInt()将值转换为数字。
javascript:this.form.amount.value=parseInt(this.form.amount.value, 10)+10;