我正在测试一些javascript,我想将数字打印到输入文本类型中。 我有三个按钮,每个按钮都有一个数字。 到目前为止,每次点击每个数字时都会打印这些数字。但是如果我打印两个按钮,或者一个按钮,两次,则替换第一个数字。 我想将每个数字打印到同一个文本字段中。一个接一个。
这是我的表格:
<input type="text" name="resultado" id="resultado"/>
<input id="1" name="1" onClick="uno();" type="button" value="1"/>
<input id="2" name="2" onClick="dos();" type="button" value="2"/>
<input id="3" name="3" onClick="tres();" type="button" value="3"/>
...
这是我的javascript:
function uno() {
n1=document.getElementById('1').value;
document.getElementById('resultado').value=n1;
}
function dos() {
n2=document.getElementById('2').value;
document.getElementById('resultado').value=n2;
}
function tres() {
n3=document.getElementById('3').value;
document.getElementById('resultado').value=n3;
我如何实现这一目标? 此外,我知道应该有更好的方法来打印出来,而不需要每个按钮都有一个功能吗?
答案 0 :(得分:2)
不要使用=
来为旧值指定新值,而是尝试+=
,它会将值附加到现有值。
答案 1 :(得分:2)
正如@meagar所说,使用+=
运算符代替=
。但关于“更好的打印方式,而不需要每个按钮只需一个函数”:使用这样的函数参数:
function appendToField(number){
document.getElementById('resultado').value+=number;
}
和html:
<input type="text" name="resultado" id="resultado"/>
<input id="1" name="1" onClick="appendToField(1);" type="button" value="1"/>
<input id="2" name="2" onClick="appendToField(2);" type="button" value="2"/>
<input id="3" name="3" onClick="appendToField(3);" type="button" value="3"/>
答案 2 :(得分:0)
你可以这样做:
<input type="text" name="resultado" id="resultado"/>
<input id="1" name="1" onClick="document.getElementById('resultado').value+=this.id" type="button" value="1"/>
<input id="2" name="2" onClick="document.getElementById('resultado').value+=this.id" type="button" value="2"/>
<input id="3" name="3" onClick="document.getElementById('resultado').value+=this.id" type="button" value="3"/>
或者如果您使用任何服务器端语言,假设它是php
,那么您可以使用for
循环进一步简化它:
<input type="text" name="resultado" id="resultado"/>
<?php
for($i=1;$i<=3;$i++){
?>
<input id="<?php echo $i;?>" name="<?php echo $i;?>" onClick="document.getElementById('resultado').value+=this.id" type="button" value="<?php echo $i;?>"/>
<?php
}
?>