添加两个文本框值并自动在第三个文本框中显示总和

时间:2013-05-21 11:08:20

标签: javascript

我已经指定了一个添加两个文本框值的任务。我希望只要在前两个文本框中输入值,就可以在第三个文本框中显示添加结果,而无需按任何按钮。

例如:在第一个文本框中我想输入450,当我按下数字'450'的数字4时,它将被添加到第3个文本框,任何数字我按在前两个文本框中,突然发生变化将在第三个文本框中反映出来。我该怎么做?

这里我在onkeyup中编写代码调用sum()

onkeyup="sum()"
function sum() {
        var txtFirstNumberValue = document.getElementById('txt1').value;
        var txtSecondNumberValue = document.getElementById('txt2').value;
        var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
        if(!isNaN(result)){
            document.getElementById('txt3').value = result;
        }
}

这不适用于chrome

8 个答案:

答案 0 :(得分:10)

试试这个

  function sum() {
       var txtFirstNumberValue = document.getElementById('txt1').value;
       var txtSecondNumberValue = document.getElementById('txt2').value;
       if (txtFirstNumberValue == "")
           txtFirstNumberValue = 0;
       if (txtSecondNumberValue == "")
           txtSecondNumberValue = 0;

       var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
       if (!isNaN(result)) {
           document.getElementById('txt3').value = result;
       }
   }

答案 1 :(得分:7)

试试这个:在 CHROME

中打开小提琴
function sum() {
      var txtFirstNumberValue = document.getElementById('txt1').value;
      var txtSecondNumberValue = document.getElementById('txt2').value;
      var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
      if (!isNaN(result)) {
         document.getElementById('txt3').value = result;
      }
}

<强> HTML

<input type="text" id="txt1"  onkeyup="sum();" />
<input type="text" id="txt2"  onkeyup="sum();" />
<input type="text" id="txt3" />

DEMO HERE

答案 2 :(得分:1)

我没有找到谁做出优雅的答案,这就是为什么让我说:

window.sum= () => 
 document.getElementById('result').innerHTML=    
   Array.from(
     document.querySelectorAll('#txt1,#txt2')
   ).map(e=>parseInt(e.value)||0)
   .reduce((a,b)=>a+b,0)

<input type="text" id="txt1" onkeyup="sum()"/>
<input type="text" id="txt2" onkeyup="sum()"  style="margin-right:10px;"/><span id="result"></span>
  let isDestroyed = false;

  $http.get('/someurl').then(response => {
    if (isDestroyed) return;

    processResponse();
  });

  $scope.$on('$destroy',() => {
    isDestroyed = true;
  });

答案 3 :(得分:0)

那么,根据您的代码,您可以在每个文本框中添加 onkeyup = sum() txt1和txt2

答案 4 :(得分:0)

我认为这个问题已经解决了 以下代码有效:

function sum() {
    var result=0;
       var txtFirstNumberValue = document.getElementById('txt1').value;
       var txtSecondNumberValue = document.getElementById('txt2').value;
    if (txtFirstNumberValue !="" && txtSecondNumberValue ==""){
        result = parseInt(txtFirstNumberValue);
    }else if(txtFirstNumberValue == "" && txtSecondNumberValue != ""){
        result= parseInt(txtSecondNumberValue);
    }else if (txtSecondNumberValue != "" && txtFirstNumberValue != ""){
        result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
    }
       if (!isNaN(result)) {
           document.getElementById('txt3').value = result;
       }
   }

答案 5 :(得分:0)

这是正确的代码

function sum() 
{ 
    var txtFirstNumberValue = document.getElementById('total_fees').value; 
    var txtSecondNumberValue = document.getElementById('advance_payement').value; 
    var result = parseInt(txtFirstNumberValue) - parseInt(txtSecondNumberValue); 
    if(txtFirstNumberValue=="" ||txtSecondNumberValue=="") 
    { 
        document.getElementById('balance_payement').value = 0; 
    }
    if (!isNaN(result)) 
    { 
        document.getElementById('balance_payement').value = result;
    }
} 

答案 6 :(得分:0)

eval("3+2")=5以来,您可以按照以下方式使用它:

byId=(id)=>document.getElementById(id); 
byId('txt3').value=eval(`${byId('txt1').value}+${byId('txt2').value}`)

由此,您不需要parseInt

答案 7 :(得分:0)

在下面的代码中,我已经完成了总和和减法的操作:因为如果你想调用函数,使用 JavaScript ,那么你必须将你的下面的代码放在document.ready(function{ });之外和之外脚本结束标记。

我为此操作添加了另一个脚本标记。并在脚本开始标记//代码//脚本结束标记之间放置以下代码。

 function operation() 

 {

   var txtFirstNumberValue = parseInt(document.getElementById('basic').value);
   var txtSecondNumberValue =parseInt(document.getElementById('hra').value);
   var txtThirdNumberValue =parseInt(document.getElementById('transport').value);
   var txtFourthNumberValue =parseInt(document.getElementById('pt').value);
   var txtFiveNumberValue = parseInt(document.getElementById('pf').value);

   if (txtFirstNumberValue == "")
       txtFirstNumberValue = 0;
   if (txtSecondNumberValue == "")
       txtSecondNumberValue = 0;
   if (txtThirdNumberValue == "")
       txtThirdNumberValue = 0;
   if (txtFourthNumberValue == "")
       txtFourthNumberValue = 0;
   if (txtFiveNumberValue == "")
       txtFiveNumberValue = 0;



   var result = ((txtFirstNumberValue + txtSecondNumberValue + 
  txtThirdNumberValue) - (txtFourthNumberValue + txtFiveNumberValue));
   if (!isNaN(result)) {
       document.getElementById('total').value = result;
   }
 }

并将onkeyup="operation();"放入html表单中的所有5个文本框中。 此代码在Firefox和Chrome中运行。