javascript:如何将几个按钮中的值打印到一个文本字段中(一个值接着另一个)?

时间:2013-11-02 03:27:50

标签: javascript

我正在测试一些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;

我如何实现这一目标? 此外,我知道应该有更好的方法来打印出来,而不需要每个按钮都有一个功能吗?

3 个答案:

答案 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
}
?>