好的,所以我刚开始使用JavaScript编写代码,这实际上是我的第一次尝试,这是我的问题。我需要做的是将“数量”框的输入与“价格”框的输入相乘,然后自动填充“扩展”框,但是我只能弄清楚如何将“数量”和“价格”的总和相加并填充到分机盒。这是我正在使用的代码:
function multiply1() {
var extend1=0
for (var i=1; i <= 2; i++) {
var id = "1_value"+i;
extend1 = extend1 + document.getElementById(id).value*1;
}
document.getElementById("extend1").value = extend1;
}
function multiply2() {
var extend2=0
for (var i=1; i <= 2; i++) {
var id = "2_value"+i;
extend2 = extend2 + document.getElementById(id).value*1;
}
document.getElementById("extend2").value = extend2;
}
function multiply3() {
var extend3=0
for (var i=1; i <= 2; i++) {
var id = "3_value"+i;
extend3 = extend3 + document.getElementById(id).value*1;
}
document.getElementById("extend3").value = extend3;
}
function multiply4() {
var extend4=0
for (var i=1; i <= 2; i++) {
var id = "4_value"+i;
extend4 = extend4 + document.getElementById(id).value*1;
}
document.getElementById("extend4").value = extend4;
}
function multiply5() {
var extend5=0
for (var i=1; i <= 2; i++) {
var id = "5_value"+i;
extend5 = extend5 + document.getElementById(id).value*1;
}
document.getElementById("extend5").value = extend5;
}
另外,如果您在数量框中输入总计,则将填充外部框,但也应填充到“材料合计”框中的外部框的合计中,这显然没有发生,脚本可以将外部框合计并填充材料如您所见,通过在任何ext框中输入合计即可看到合计框,它将填充或合计到材料合计框中。
好的,所以首先我需要将“数量和价格”框相乘,其次我需要弄清楚为什么此脚本在从“数量和价格”脚本中输入后无法从ext框中获取值。
function summate() {
var mattotal=0
for (var i=1; i <= 5; i++) {
var id = "extend"+i;
mattotal = mattotal + document.getElementById(id).value*1;
}
document.getElementById("mattotal").value = mattotal;
}
谢谢你的帮助!
最佳答案
我需要(...)将数量框的输入与价格框的输入相乘,并自动填充扩展框
首先,您正在对值(extend1 = extend1 + document.getElementById(id).value*1;
)求和。如果要乘以它们,则乘以它们(但不要忘记用extend1
而不是1
初始化0
):
function multiply1() {
var extend1 = 1; // <--changed here
for (var i=1; i <= 2; i++) {
var id = "1_value"+i;
extend1 = extend1 * document.getElementById(id).value; // <--changed here
}
document.getElementById("extend1").value = extend1;
}
因此,从
multiply1()
到multiply5()
的方式来进行创伤最小的方法是。好的,所以首先我需要将“数量和价格”框相乘,其次我需要弄清楚为什么此脚本在从“数量和价格”脚本中输入后无法从ext框中获取值。
未调用您的
summate()
,因为它已挂在onInput
输入的“ extendN
”事件上。您正在使用以下方式更改extendN
:document.getElementById("extend1").value = extend1;
不会触发
onInput
事件。最快的解决方案?设置
extendN
的值后,调用summate()
。这是最终版本:function multiply1() {
var extend1 = 1; // <--changed here
for (var i=1; i <= 2; i++) {
var id = "1_value"+i;
extend1 = extend1 * document.getElementById(id).value; // <--changed here
}
document.getElementById("extend1").value = extend1;
summate(); // <--changed here
}
以下是具有建议的更改的演示:http://jsfiddle.net/zNFV8/