javascript - 如何在 JavaScript 中进行乘法

标签 javascript

好吧,我对使用 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;
}

此外,如果您在数量框中输入总计,它将填充扩展框,但也应填充到 Material 总计框中的扩展框总数,这显然不会发生,脚本将汇总扩展框,并且如您所见,通过在任何外部框中输入总计来填充 Material 总计框,它将填充或总计到 Material 总计框中。

好吧,首先我需要将数量和价格框相乘,其次我需要弄清楚为什么这个脚本在从数量和价格脚本输入后没有从扩展框中获取值

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

感谢您的帮助!

最佳答案

I need to (...) multiply the input of the Qty box with the input of the Price box and auto populate the Ext box

首先,您对值求和 (extend1 =extend1 + document.getElementById(id).value*1;)。如果您想将它们相乘,那么就将它们相乘(但不要忘记用 1 而不是 0 初始化 extend1):

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() 执行此操作。


Ok so first I need to multiply the Qty and Price boxes and secondly I need to figure out why this script isn't getting the value from the ext boxes after they are input from the Qty and Price script

您的 summate() 未被调用,因为它 Hook 了 extendN< 的“onInput 事件 输入。您将 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/

关于javascript - 如何在 JavaScript 中进行乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16756538/

相关文章:

javascript - Sveltekit 加载函数显然没有被调用

javascript - 在exceljs中插入一列

Javascript 变量问题

JavaScript小游戏

javascript - 添加使用箭头键移动 div 的限制

javascript - 为什么我会收到此 Node.js 构建错误?

javascript - 重命名由 javascript 创建的参数

javascript - Bootstrap datepicker 在克隆后不起作用(使用 jQuery-Clone)

javascript - 如何在小部件中使用 jquery-ui 复选框?

javascript - 调用同一文件中的测试函数