好的,所以我刚开始使用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/

10-06 08:21