如何在VANILLA JS中等待事件进入循环?

读是

我尝试获得5个输入,最后输出总和。我不知道如何等待事件(onclick)的问题,尤其是没有settimeout时间函数或其他时间函数时。

这是代码:

var sum = 0;
var input = document.getElementById("input");

document.getElementById("submit").onclick = function(e) {
  e.preventDefault();
  for (var i = 0; i < 5; i++) {
    sum += parseInt(input.value);
    input.value = "";
    //wait until the user submit another value
  }
}

document.getElementById("answer").innerHTML = sum;
<form>
  <input type="text" id="input">
  <input type="submit" id="submit">
</form>
<p id="answer">answer</p>
<script src="script.js"></script>

斯科特·马库斯(Scott Marcus)

因为您每次都依赖于用户按下按钮,所以不应首先使用循环。只需使用一个计数器来跟踪该功能已运行了多少次,以及何时达到所需的数量,就可以防止该功能进行更多的添加。

您还需要确保在函数内而不是在函数外更新总数。

笔记:

由于您不在任何地方提交任何数据,因此不应使用formsubmit按钮。一个普通的button就是你想要的。

使用.addEventListener()而非事件属性(如)设置事件onclick

.innerHTML如果字符串中没有HTML,请不要使用.textContent而应使用

var sum = 0;
var count = 0;
var input = document.getElementById("input");
var answer = document.getElementById("answer");
var total = document.getElementById("total");

total.addEventListener("click", function (e) {
  count++;   // Increase the counter
  
  // Check to see if we've reached the count
  if(count >= 5){ 
    this.disabled = "disabled";
    input.value="";
    answer.textContent = "The final total is: " + sum;
    return; // Exit the function
  }
  
  sum+=parseInt(input.value);
  input.value="";
  answer.textContent = sum;
  alert("Enter the next number and press the button.");
});
<input type="text" id="input">
        <input type="button" id="total" value="Add to Total">

    <p id="answer"></p>
   <script src="script.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C#中等待事件处理程序的响应?

来自分类Dev

如何在for循环中等待ajax调用完成

来自分类Dev

如何在无限循环中等待函数完成?

来自分类Dev

如何在循环的每次迭代中等待异步操作完成

来自分类Dev

如何在无限循环中等待函数完成?

来自分类Dev

如何在循环中等待多个WebWorkers

来自分类Dev

如何在Vanilla JS数组中定位“ this”元素

来自分类Dev

如何在Vanilla JS中将URL参数与输入字段绑定?

来自分类Dev

如何在Vanilla JS中插入媒体查询?

来自分类Dev

如何在Vanilla JS中显示和隐藏文本?

来自分类Dev

如何在Vanilla JS中使用jquery内容

来自分类Dev

如何在 css 动画后获取元素的位置(vanilla js)

来自分类Dev

如何在Node.js中等待子进程完成?

来自分类Dev

如何在节点js中等待子查询结果?

来自分类Dev

如何在Rx中等待

来自分类Dev

如何在 JQuery 中等待

来自分类Dev

如何在 C++ 中等待一组线程完成或其他事件

来自分类Dev

如何防止事件进入无限循环?

来自分类Dev

如何在找到一组 id 的 api 中等待循环完成?SailsJs

来自分类Dev

如何在 vanilla javascript 中实现承诺以等待转换完成?

来自分类Dev

如何在单击事件和使用 Vanilla JavaScript 加载新页面后滚动到元素

来自分类Dev

在 for 循环中等待单击事件

来自分类Dev

在 for 循环中等待事件函数

来自分类Dev

如何在ExecutePostProcessingAsync中等待异步方法

来自分类Dev

如何在elasticsearch中等待重新索引?

来自分类Dev

如何在Docker Compose中等待MSSQL?

来自分类Dev

如何在ThreadPool中等待任何线程?

来自分类Dev

如何在switchMap中等待Observable?

来自分类Dev

如何在iOS中等待NSXMLParser完成

Related 相关文章

热门标签

归档