2013-06-24 34 views
0

如何从“#sum”中获取结果并将其自动复制到文本字段中,以便当我提交表单时,该值也会被发送?从字段总和克隆到文本字段中

<script> 
    $(document).ready(function() { 
     $(":text").each(function() { 
      $(this).keyup(function() { 
       calculateSum(); 
      }); 
     }); 
    }); 

    function calculateSum() { 
    var sum=0; 
    $(":text").each(function() { 
     if(!isNaN(this.value) && this.value.length!=0 { 
      sum+=parseFloat(this.value); 
     } 
    }); 
    $("#sum").html(sum.toFixed(0)); 
    $("#myTextField").val(sum.toFixed(0)); //adding to text field 
} 
</script> 

有没有快速解决这个问题?

这是HTML页面上实际值更新的地方。

<span id="sum">0</span> 

这不是正确的。如果我在其中一个字段中键入500,它现在需要第一个数字并重复,所以如果输入500,它将输出为555

任何帮助?

+0

你可以只发布HTML吗? –

+0

每次调用该函数时,都会重新声明变量'sum',这就是每个'keyup',并且每当在任何文本框中按下某个键时,'calculateSum'函数会遍历每个文本框,这就是您想? – tymeJV

+0

' – user2405912

回答

0

你的问题是,“:text”是选择myTextField。所以你的最终价值被重新加入。 5 = 5; 50 + 5 = 55; 500 + 55 = 555;你可以尝试使用不选择器。

$( “:文本:不是( '#myTextField将')”)

http://jsfiddle.net/RhRbR/

$(":text:not(#myTextField)").each(function() { 
    if(!isNaN(this.value) && this.value.length!=0) { 
    sum+=parseFloat(this.value); 
    } 
}) 

小提琴可以告诉你怎么走。