【问题标题】:How do I make JavaScript to set these element values?如何让 JavaScript 设置这些元素值?
【发布时间】:2010-04-05 22:53:54
【问题描述】:

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

我希望将前两种形式相乘并输出到第三种形式。我认为我的问题可能在于我如何使用括号引用输入字段名称(我将此表单的结果作为数组获取,因此我已经习惯将结果作为多维数组处理)。

【问题讨论】:

    标签: javascript html object


    【解决方案1】:

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

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

    【讨论】:

    • 我很欣赏这种做法,引用这样的参考资料是一个不错的决定,但它不起作用。
    • 当你尝试它时会发生什么?你得到一个错误或什么?我刚试过,它对我有用。
    • 也适合我。你是用firebug来调试的吗?如果没有,您应该检查一下。
    【解决方案2】:

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

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

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

    【讨论】:

    • 这可行,但我无法更改输入的名称。它必须用括号保持估计[具体]。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2021-12-03
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 2017-10-12
    相关资源
    最近更新 更多