2014-06-05 84 views
-1

我有一些文本框。我的HTML代码是:通过js使用金额和折扣计算总额?

<input type="text" id="amt_5" onkeyup="calculateTotal(5);" style="width:50px" name="data[Fee][fee_to]"> 
<input type="text" id="dis_5" onkeyup="calculateTotal(5);" style="width:50px" name="data[Fee][fee_to]"> 
<input type="text" id="total_5" style="width:50px" name="data[Fee][fee_to]"> 

<input type="text" id="amt_6" onkeyup="calculateTotal(6);" style="width:50px" name="data[Fee][fee_to]"> 
<input type="text" id="dis_6" onkeyup="calculateTotal(6);" style="width:50px" name="data[Fee][fee_to]"> 
<input type="text" id="total_6" style="width:50px" name="data[Fee][fee_to]"> 



Total Fees Amount 
<span id="Fees_amt" style="margin-left:20px;"></span> 

和我的js代码:

<script> 
    function calculateTotal(pid){ 

     //alert($id_particular); 
     var amt=document.getElementById('amt_'+pid).value; 
     var dis=document.getElementById('dis_'+pid).value; 
     if(amt != "" && dis != ""){ 
     var total = (amt-((dis*amt)/100)); 
     } 
     else if(amt != "" && dis == ""){ 
     var total = amt; 
     } 
    else{ 
    var total = ""; 
    } 
    document.getElementById('total_'+pid).value=total; 
    } 
</script> 

上面的代码基本工作原理: 从textbox(amt_5,amt_6)注意到量值,需要从textbox(dis_5,dis_6)折现值,计算出总的和通过JS

填补了​​现在我想要做的是: 无论总进来total_6total_5,加他们并填写我的跨度元素与编号Fees_amt

这应该通过js,增强我的js代码,而不刷新页面。

请帮忙。

回答

0

在现有的JavaScript代码,您可以添加类似:

document.getElementById("Fees_amt").appendChild(document.createTextNode('' + total)); 

在另一方面,当前的代码是不是在这个意义上奇特的是每次有人类型的单个输入字段中输入字符,整个计算功能运行。虽然代码有效,但我会主张添加一个按钮,以便用户在输入值输入到输入字段后单击。虽然需要更多的用户输入,但我认为这是组织代码的一种更简洁的方式。基础上,进一步澄清

编辑 如果你想的total_6和总和total_5最简单的方法(同时保持当前的JavaScript的结构将保持在两个全局的JavaScript变量的值。这则是这个样子:

<script> 
    var total5 = 0, 
     total6 = 0; 

    function calculateTotal(pid){ 
     var amt=document.getElementById('amt_'+pid).value; 
     var dis=document.getElementById('dis_'+pid).value; 
     if(amt != "" && dis != ""){ 
     var total = (amt-((dis*amt)/100)); 
     } 
     else if(amt != "" && dis == ""){ 
     var total = amt; 
     } 
    else{ 
     var total = ""; 
    } 
    document.getElementById('total_'+pid).value=total; 
    if(pid==5){ 
     total5 = total; 
    } else{ 
     total6 = total 
    } 
    document.getElementById("Fees_amt").appendChild(document.createTextNode(total6 + total5)); 
    } 

虽然这应该工作,我强烈建议你重新考虑你正在处理这个问题的方式

+0

你的答案是连接总数,而不是增加它 – user3541020

+0

只是为了澄清,你想要添加什么? 'total_6'和'total_5'中的值? – danielvdende

+0

是的,我确实需要相同的 – user3541020