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"
我有一个带有多个输入字段的价格计算器,但计算结果保持不变。我有的是:
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"