如何使JavaScript设置这些元素值?

时间:2010-04-05 22:53:54

标签: javascript html object

我有两个字段需要相互相乘并填充第三个表单的值。这是HTML:

    <input type="text" name="estimate[concrete][price]" value="" onBlur="calc_concreteprice(document.forms.mainform);" /> 
per SF <strong>times</strong> 
<input type="text" name="estimate[concrete][sqft]" value="" onBlur="calc_concreteprice(document.forms.mainform);" /> SF
 = <input type="text" name="estimate[concrete][quick_total]" value="" />

这是我的JavaScript:

    function calc_concreteprice(mainform) {
        var oprice;
        var ototal;

        oprice = ((mainform.estimate[concrete][sqft].value) * (mainform.estimate[concrete][price].value));
        ototal = (oprice);

        mainform.estimate[concrete][quick_total].value = ototal;
    }

我希望将前两个表格相乘并输出到第三个表格。我认为我的问题可能在于我如何引用输入字段名称,带括号(我将此表单的结果作为数组,因此我已经习惯将结果用作多维数组)。 / p>

2 个答案:

答案 0 :(得分:3)

当您撰写mainform.estimate[concrete][quick_total].value之类的内容时,它会尝试访问名为concretequick_total的属性。请尝试使用此格式来区分属性和包含方括号的字符串:

mainform['estimate[concrete][quick_total]'].value

答案 1 :(得分:0)

我很确定这是方括号。尝试在输入字段中更改您的姓名。如果您希望明确区分名称以显示某种层次结构,请尝试使用下划线,如<input type="text" name="estimate_concrete_price" />

在您的javascript中将其更改为mainform.estimate_concrete_price.value .....

试一试。我很确定它会起作用。