javascript。将变量传递给变量输入字段

javascript. passing a variable to a variable input field

我有一个带有多个输入字段的价格计算器,但计算结果保持不变。我有的是:

function calcone() {
    calc(Number(document.calc.priceboxa.value),
         Number(document.calc.amountboxa.value),
         document.calc.answera.value,);
}

function calctwo() {
    calc(Number(document.calc.priceboxb.value),
         Number(document.calc.amountboxb.value),
         document.calc.answerb.value,);
}

function calc(price, amount, costbox) {
    var one = price / amount,
    costbox = one;
}

我无法 "costbox = one;" 将变量发送回答案* 字段。我究竟做错了什么?我已经搜索过,但找不到答案。

有效的新代码:

function calcone() {
    calc(Number(document.calc.priceboxa.value),
         Number(document.calc.amountboxa.value),
         document.calc.answera,);
}

function calctwo() {
    calc(Number(document.calc.priceboxb.value),
         Number(document.calc.amountboxb.value),
         document.calc.answerb,);
}

function calc(price, amount, costbox) {
    var one = price / amount,
    costbox.value = one;
}

您将值传递给方法而不是您需要执行此操作的元素:

function calcone() {
    calc(Number(document.calc.priceboxa.value), Number(document.calc.amountboxa.value));
}

function calc(price, amount) {
    var one = price / amount;
    document.calc.answera.value = one;
}

或者:

function calcone() {
    calc(Number(document.calc.priceboxa.value), Number(document.calc.amountboxa.value), document.calc.answera);
}

function calc(price, amount, answerbox) {
    var one = price / amount;
    answerbox.value = one;
}

当你将 document.calc.answerb.value 作为 costbox 传递给你的函数时,就像在一张纸上写下一个地址,然后说 costbox 就会知道在哪里可以找到 document.calc.answerb.value

所以当你这样做时:

costbox = one;

您所做的只是重写那张 sheet 纸上的地址。您还没有更改 document.calc.answerb.value 过去指向的成本框的值;相反,您只是告诉 costbox 指向其他东西。

所以您要做的实际上是将costbox 指向 的内容更改为...而不是成本盒本身。现在的问题是你如何解决这个问题?答案是不是改变costbox的值,而是改变costbox的属性。

这意味着不是传入

document.calc.answerb.value

你传入

document.calc.answerb

然后costbox.value = one

function calc(price, amount, costbox) {
    var one = price / amount,
    costbox.value = one;
}

现在,您不是将那张纸上的地址擦掉并写下新的,而是访问该地址并说:"I want the value changed"