文本框中的值错误

时间:2013-10-03 10:29:52

标签: javascript jquery

我是初学者在HTML中使用javaScript,我试图在用户输入的两个值之间创建一个乘法,并将结果显示在另一个文本框中,但结果显示错误。

有三个文本框,第一个框我放2和第二个7,在第三个文本框中它应该显示结果是14,但它显示结果是98.

有人能帮助我吗?

我的HTML代码如下:

<tr style="background:#fafafa;">
  <td style="border:1px solid #ccc; border-width:1px 1px 0 0;"><textarea name="exp_desc" id="exp_desc" rows="3" cols="35"></textarea></td>
  <td style="border:1px solid #ccc; border-width:1px 1px 0 0; color: #D6D6D6;"><input class ="txt" type="text" name="txt"></td>
  <td style="border:1px solid #ccc; border-width:1px 1px 0 0;"><input class ="txt" type="text" name="txt"></td>
  <td style="border:1px solid #ccc; border-width:1px 1px 0 0;"><input span id='sum'  class ="txt" type="text" name="txt"></span></td>
  <td style="border:1px solid #ccc; border-width:1px 1px 0 0;"><input type="file" name="datafile[]" size="40"></td>
</tr>

和javaScript是:

$(document).ready(function(){
    $(".txt").each(function() {
        $(this).keyup(function(){
            calculateSum();
        });
    });
});

function calculateSum() {
    var sum = 1;
    $(".txt").each(function() {
        if(!isNaN(this.value) && this.value.length!=0) {
            sum *= parseFloat(this.value);
        } 
    });

    // enter code here 

    $("#sum").val(sum.toFixed(2));

}

1 个答案:

答案 0 :(得分:0)

将您的javascript修改为:

<script>
 var num1=0;
 var num2=0;
$(document).ready(function(){
$("#txt1,#txt2").on("keyup",function(){
  num1  =   $("#txt1").val();
  num2  =   $("#txt2").val();
    if(!isNaN(this.value) && this.value.length!=0) {
        num1 *= parseFloat(num2);
        $("#sum").val(num1.toFixed(2));
    }
});
}); 
</script>

HTML:

<tr style="background:#fafafa;">
<td style="border:1px solid #ccc; border-width:1px 1px 0 0;"><textarea name="exp_desc" id="exp_desc" rows="3" cols="35"></textarea></td>
<td style="border: 1px solid #ccc; border-width: 1px 1px 0 0; color: #D6D6D6;"><input class ="txt" type="text" name="txt" id="txt1"></td>
<td style="border:1px solid #ccc; border-width:1px 1px 0 0;"><input class ="txt" type="text" name="txt" id="txt2"></td>
<td style="border:1px solid #ccc; border-width:1px 1px 0 0;"><input  id='sum'  class ="txt" type="text" name="txt"></td>
<td style="border:1px solid #ccc; border-width:1px 1px 0 0;"><input type="file" name="datafile[]" size="40"></td>
</tr>