使用jquery计算一些表单字段

时间:2011-11-30 12:57:05

标签: jquery

我对jquery很新,我逐渐完成了我的书!我为一些表单字段值生成了这个简单的计算器。基本上,如果用户选择百分比,则会进行百分比计算,并将结果放入另一个表单字段中。如果用户选择mvalue,则脚本只会将该值放入表单字段中。百分比计算器工作得很好,问题在于脚本的第二部分,firefox中的错误消息是calcVal.toFixed不是函数。如果这段代码过度或粗糙,我会道歉,但正如我所说,我仍在学习。

<script type="text/javascript">
         function myCalc() {
        var selectVal = $('##txt_passoc_type#currentrow# :selected').val();
        var valBox = $('##mon_value#currentrow#').val();
        var currentPrice = $('##currentPrice#currentrow#').val();
        if (selectVal == "Percentage"){
        var calcVal = ((currentPrice * valBox)/100);
        var myTotal = currentPrice - calcVal;
        var myCleanTotal = myTotal.toFixed(2);
         $('##mon_paasoc_dprice#currentrow#').val(myCleanTotal);
         $('##screenPrice#currentrow#').val(myCleanTotal);
     }
    else if (selectVal == "MValue"){
        var myVal = $('##mon_value#currentrow#').val();
        var calcVal = myVal
        var myTot = calcVal.toFixed(2);
        $('##mon_paasoc_dprice#currentrow#').val(myVal);
         $('##screenPrice#currentrow#').val(myVal);


    }

         }

    </script>

感谢任何帮助。

杰森

2 个答案:

答案 0 :(得分:2)

问题是你在String上调用了fixed()并且它可以在一个数字上被调用

例如,这会产生错误

var calcVal = "3";
var myTot = calcVal.toFixed(2);

这不是

var calcVal = "3";
calcVal = parseInt(calcVal , 10);
 var myTot = calcVal.toFixed(2);

所以在你的例子中你应该这样做:

else if (selectVal == "MValue"){
    var myVal = $('##mon_value#currentrow#').val();
    var calcVal = parseInt(myVal, 10);//convert to a Number!
    var myTot = calcVal.toFixed(2);
    $('##mon_paasoc_dprice#currentrow#').val(myVal);
     $('##screenPrice#currentrow#').val(myVal);
}

您不需要在if部分执行任何操作,因为calcVal是一个数字

 var calcVal = ((currentPrice * valBox)/100);//Here calcVal is a number already
 var myTotal = currentPrice - calcVal;

答案 1 :(得分:2)

如果您将html与javascript一起发布可能会有所帮助,但我怀疑您是在字符串上调用固定的。你应该试试这个:

parseFloat(calcVal).toFixed(2)