代码之家  ›  专栏  ›  技术社区  ›  dmanexe

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

  •  1
  • dmanexe  · 技术社区  · 16 年前

    我有两个字段需要相乘并填写第三个表单的值。这是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;
        }
    

    我希望前两个表单相乘,然后输出到第三个表单。我认为我的问题可能在于如何引用输入字段名,以及括号(我将此表单的结果作为数组,因此我已经习惯了将结果作为多维数组处理)。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Jimmy Nitzan Tomer    16 年前

    当你写像 mainform.estimate[concrete][quick_total].value ,它正在尝试访问名为 concrete 和 quick_total . 请尝试使用此格式来区分属性和包含方括号的字符串:

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

        2
  •  0
  •   Brent Parker    16 年前

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

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

    试试看。我很肯定会成功的。