javascript - Javascript 中表单输入的总和

标签 javascript arrays for-loop push

我希望用户输入一个数字,然后在提交时将其插入到数组totalBags中。 然后,用户可以提交另一个数字,提交时数组元素会添加到一起。 例如。输入 = 2 按提交 输出=2 新输入 = 3 按提交 输出 = 5

这是我的代码:

<html>
<head>

<script type = "text/javascript">

function submitOrder()
{
var allBags = [];
var bags_text = document.getElementById("bags").value;
allBags.push(bags_text);
var totalBags = 0;

for (var i = 0; i < allBags.length; i++)
{
    totalBags += allBags[i]; // here is the problem... i think
}
document.getElementById("container").innerHTML = "<p>"+totalBags+"</p><input type=\"reset\" value=\"New Order\" onClick=\"resetOrder()\" />";
}
function resetOrder()
{   
document.getElementById("container").innerHTML = "<p><label for=\"bags\">No. bags: </label><input type=\"text\" id=\"bags\" /></p><p><input type=\"button\" value=\"Subit order\" onClick=\"submitOrder()\"> <input type=\"reset\" value=\"Reset Form\" /></p>";
}
</script>
</head>
<body>
<form name="order_form" id="order_form">
<div id="container">
<label>Total bags: </label><input id="bags" type="text" ><br>
<input type="button" id="submitButton" value="Subit order" onClick="submitOrder()">
<input type="reset" value="Reset" class="reset" />
</div>
</form>
</html>

最佳答案

我应该稍微重写一下程序。首先,您可以定义不会在函数中实例化的全局变量。您正在这样做,这会重置变量。铁

function submitOrder()
{
    var allBags = [];
    // ...
}

这意味着每次您单击按钮时,allBags 都会创建为一个新数组。然后从输入元素添加一个值。结果是您始终拥有一个只有一个元素的数组。最好在函数外部声明它。这样,您就可以确保变量得到保留。

// general variables
var allBags = [];
var totalBags = 0;

function submitOrder()
{
    // the result is a string. You have to cast it to an int to ensure that it's numeric
    var bags_text = parseInt(document.getElementById("bags").value, 10);
    // add result to allBags
    allBags.push(bags_text);
    // total bags
    totalBags += bags_text;

    // display the result
    document.getElementById("container").innerHTML = "<p>"+totalBags+"</p><input type=\"reset\" value=\"New Order\" onClick=\"resetOrder()\" />";
}

通过省略循环,您将获得性能更高的程序。但如果您使用重置按钮,请不要忘记将数组和 totalBags 变量清除为 0。

function resetOrder()
{   
    document.getElementById("container").innerHTML = "...";
    // reset variables
    totalBags = 0;
    allBags = [];
}

关于javascript - Javascript 中表单输入的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23830551/

相关文章:

arrays - 从 SKSpriteNode 类实例访问 GameScene 中的数组?

python - MATLAB 中的 Python zip 函数等效于什么?

javascript - 如何发送响应到ajax但保留procces php脚本

javascript - 调用多个函数进行渲染

javascript - 如何使用 Javascript 获取泰米尔语 unicode 单词中的正确首字母?

java - libGDX:如何从数组中删除特定值

java - 将队列顶部与数组列表元素进行比较

javascript - 使用javascript显示和隐藏sidenav

c# - 对数组的困惑

python - 替代 Python 中的二维数组