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

javascript。将变量传递给变量输入字段,javascript,variables,parameters,Javascript,Variables,Parameters,我有一个带有多个输入字段的价格计算器,但计算结果保持不变。我所拥有的是: function calcone() { calc(Number(document.calc.priceboxa.value), Number(document.calc.amountboxa.value), document.calc.answera.value,); } function calctwo() { calc(Number(document.calc.p

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

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;
}
或:


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

所以当你这样做的时候:

costbox = one;
你所做的就是把地址重写在那张纸上。您尚未更改成本框所指向的
document.calc.answerb.value的值;相反,你只是让costbox指向其他东西

因此,您需要做的是实际更改
costbox
指向的对象,而不是costbox本身。现在的问题是如何解决这个问题?答案是,不是更改costbox的值,而是更改costbox的属性

这就是说,我们不是通过

document.calc.answerb.value
你过去

document.calc.answerb
和do
costbox.value=1

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

现在,您访问地址并说:“我希望更改值”

将元素而不是元素的值传递给函数,并在函数中设置值,而不是将那张纸从地址中擦去并写下新的地址。通过document.calc.answera和document.calc.answer。并设置costbox.value=1;为什么要否决正确的答案至少说一声为什么请否则否决没有意义…为什么你要否决正确的答案而没有“没有理由”是不够好的理由。被否决的不是我。你的第二个代码有效,这就是第一个人说要做的。
function calc(price, amount, costbox) {
    var one = price / amount,
    costbox.value = one;
}