首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

有5个输入框,对前4个输入框输入的数字进行自动累加并自动赋值到第五个输入框内。小弟我已经调试成功程序,但发生了很奇怪的事情,盼大神解惑

2013-11-02 
有5个输入框,对前4个输入框输入的数字进行自动累加并自动赋值到第五个输入框内。我已经调试成功程序,但发生

有5个输入框,对前4个输入框输入的数字进行自动累加并自动赋值到第五个输入框内。我已经调试成功程序,但发生了很奇怪的事情,盼大神解惑!
本帖最后由 u011552243 于 2013-10-31 21:06:59 编辑 直接上代码:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>test.html</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script> 
            <script src="js/cufon-yui.js" type="text/javascript"></script>
    <script src="js/Arial_Rounded_MT_300.font.js" type="text/javascript"></script>
       <script src="js/jquery-1.9.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){                 
                var v1 = 0;
                var v2 = 0;
                var v3 = 0;
                var v4 = 0;
                   
                $("#add_1").keyup(function(){
                    v1 = $(this).val();
                    if(v1 == ''){
                        return false;
                    }else{
                        var result=0;
                        result=(parseFloat(v1)*0.0316).toFixed(2);
                    $("#add_2").val(result);
                    v2 == $("#add_2").val();
                    
                    v3 = $("#add_3").val();
                    v4 = $("#add_4").val();

                    if (v3 == '')
                    {
                    $("#add_3").val(0);
                    v3=$("#add_3").val();              
                        }
                    if (v4 ==  '')
                    {
                    $("#add_4").val(0);
                    v4=$("#add_4").val();
                        }
                    var resultAgain = 0;
                 resultAgain=(parseFloat(v1)+parseFloat(v2)+parseFloat(v3)+parseFloat(v4)).toFixed(2);
                $("#add_5").val(resultAgain);
                    }  
                });



                $("#add_3").keyup(function(){
                    v3 = $(this).val();
                    v1 = $("#add_1").val();
                    v2 = $("#add_2").val();
                    v4 = $("#add_4").val();
                    
                    if(v3 != ''){

                        if (v1 != ''){

                            if (v4 !=''){
                             var result=(parseFloat(v1)+parseFloat(v2)+parseFloat(v3)+parseFloat(v4)).toFixed(2);
                            $("#add_5").val(result);
                            }
                        }
                     }else{
                    return false;
                    }
                });

                $("#add_4").keyup(function(){
                    v4 = $(this).val();
                    v1 = $("#add_1").val();
                    v2 = $("#add_2").val();
                    v3 = $("#add_3").val();
                    
                    if(v4 != ''){

                        if (v1 != ''){

                            if (v3 !=''){
                             var result=(parseFloat(v1)+parseFloat(v2)+parseFloat(v3)+parseFloat(v4)).toFixed(2);
                            $("#add_5").val(result);
                            }
                        }
                    }else{
                     return false;
                    }
                });
             });
        </script>
</head>
<body>
<table>
<tr >
<td id="showOrder_25"><p>价钱:</p><input id="add_1" name="price" type="text"></td>
<td id="showOrder_26"><p>费率 3.16%:</p><input id="add_2" name="BAF" type="text" maxlength="10"></td>
<td id="showOrder_28"><p>过路费:</p><input id="add_4" name="trafficFee" type="text"></td>


</tr>
<tr >
<td id="showOrder_27"><p>其他支出:</p> <input id="add_3" name="extraCost" type="text"></td>
<td id="showOrder_29"><p>总费用:</p> <input id="add_5" name="totalPrice" type="text"></td>
</tr>
</table>
</body>
</html>



情况是这样的:总费用=价钱+费率+过路费+其他支出,其中费率=价钱*3.16%,自动得到。而且,在输入价钱时,都自动赋予过路费、其他支出这两项为0.

上面这个程序按道理应该是行的,但是每次在价钱输入框输入数字(比如100时),最后总是得到总费用=100,应该没有把费率给加进入。
我如果在 $("#add_1").keyup(function()这部分把这句代码resultAgain=(parseFloat(v1)+parseFloat(v2)+parseFloat(v3)+parseFloat(v4)).toFixed(2);当中的v2改成result,result是先前result=(parseFloat(v1)*0.0316).toFixed(2)的值,那结果就完全正确了。

这太奇怪了,在result=(parseFloat(v1)*0.0316).toFixed(2),我已经("#add_2").val(result);v2 == $("#add_2").val(),这就是说我已经把result赋值到#add_2这个输入框中,同时又把这个输入框的值赋值给v2。

这时,应该result的值和v2的值是一样的啊。为什么直接用v2时,总费用的值就没有加入费率这个数字呢?
虽然代码已经调整过了,但很奇怪,还请大神指点。
谢谢。 javascript function 调试
[解决办法]
送分哥来了。
咋送分哥用2个jQuery

热点排行