选择框值计算

时间:2011-04-06 23:59:39

标签: php javascript

我想在selectbox值之间进行计算。我的代码的问题是计算的第一部分只给我0,主板值数量。第二部分工作正常,机箱数量。我的公式是motherbord*Quanity+chassis*quantity

这是我的代码:

function calculate() {
    var parsedMotherboard = parseFloat(document.calcform.Motherboard.value || 0);
    var parsedQuantity = parseFloat(document.calcform.Quantity.value || 0);
    var parsedChassis = parseFloat(document.calcform.Chassis.value || 0);
    var parsedQuantity1 = parseFloat(document.calcform.Quantity1.value || 0);

    document.calcform.total.value = (parsedMotherboard * parsedQuantity + parsedChassis * parsedQuantity1);
}

interface

2 个答案:

答案 0 :(得分:0)

如果您更整洁地格式化代码会有所帮助:

function calculate() { 
    var parsedMotherboard = parseFloat(document.calcform.Motherboard.value || 0);
    var parsedQuantity = parseFloat(document.calcform.Quantity.value || 0); 
    var parsedChassis = parseFloat(document.calcform.Chassis.value || 0); 
    var parsedQuantity1 = parseFloat(document.calcform.Quantity1.value || 0);

    document.calcform.total.value = (parsedMotherboard * parsedQuantity +
                                      parsedChassis * parsedQuantity1);
}

您是否检查过您从表单中获取了正确的值?确保默认选项(我假设第一个值为0)具有所选属性集,以便始终选择一个选项。

其他一些提示:

  1. 存储对表单的引用,它更有效,并且使代码更简洁
  2. 由于您设置了该值,因此您知道它的格式正确,而不是使用parseInt,只需使用uary +运算符转换为数字
  3. 个人偏好,但使用较短的变量名称,以便更容易使用
  4. 我不明白需要|| 0.如果用户没有选择某些内容,则不是默认值0?
  5. 以下是更新版本:

    function calculate() {
        var form = document.calcform;
        var mb = +form.Motherboard.value;
        var mbQty  = +form.Quantity.value; 
        var ch = form.Chassis.value; 
        var chQty = form.Quantity1.value;
    
        form.total.value = mb*mbQty + ch*chQty;
    }
    

    因为每个字符串值都涉及乘法,所以不需要显式转换为数字,这将是乘法的结果,所以你可以写:

    function calculate() { 
        var form = document.calcform;
        form.total.value = form.Motherboard.value * form.Quantity.value + 
                           form.Chassis.value * form.Quantity1.value;
    }
    

答案 1 :(得分:0)

用jQuery做...

$('#selectbox1').change(function() {
         // do ajax if you want or store 
         var x = $('#selectbox1').attr('value'); // or you can use this.value
         // and so on
});

并总结其他选择框