javascript - 任何文本输入更改时运行函数

标签 javascript jquery html calc

我制作了一个计算器工具,它有大约 10 种不同的文本输入供用户在单击“计算”按钮运行函数并返回计算值之前完成。我希望每次更改文本输入时都运行该函数,而不是使用按钮。这是一个简单的示例:

function calculate() {
	//Inputs ("parseInt" converts string to Int)
	var A = parseInt(document.getElementById("A").value);
	var B = parseInt(document.getElementById("B").value);		
	var total = A*B;

	//Output
	document.getElementById("total").value = total;
};
	<input type="text" id="A"> x
<input type="text" id="B">
<input type="button" onClick="calculate()" value="Calculate"> = 
<output id="total"></output>

上面的示例有两个文本输入,当单击按钮时它们会相乘。执行此操作的最佳方法是什么,以便每次更改文本输入时都计算输出?请记住,实际项目有多个文本输入。

最佳答案

同时在文本输入中执行 oninput 上的函数:

function calculate() {
  //Inputs ("parseInt" converts string to Int)
  var A = parseInt(document.getElementById("A").value);
  var B = parseInt(document.getElementById("B").value);		
  var total = A*B;

  //Output
  document.getElementById("total").value = total;
};
<input type="text" id="A" oninput="calculate()"> x
<input type="text" id="B" oninput="calculate()">
<input type="button" onClick="calculate()" value="Calculate"> = 
<output id="total"></output>

或者:您可能希望使用 forEach() 附加事件:

function calculate() {
  //Inputs ("parseInt" converts string to Int)
  var A = parseInt(document.getElementById("A").value);
  var B = parseInt(document.getElementById("B").value);		
  var total = A*B;

  //Output
  document.getElementById("total").value = total;
};

var allTextInput = document.querySelectorAll('input[type=text]');
[...allTextInput].forEach(el => el.addEventListener('input', calculate));
<input type="text" id="A" oninput="calculate()"> x
<input type="text" id="B" oninput="calculate()">
<input type="button" onClick="calculate()" value="Calculate"> = 
<output id="total"></output>

关于javascript - 任何文本输入更改时运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51782141/

相关文章:

javascript - select2 noresult 捕获输入

javascript - 参数后缺少 ) 但仅适用于长字符串

JQuery遍历,无法正确使用.next()

javascript - 动态创建订阅事件—— knockout

javascript - 无法获取 Ext.Component 的 el 元素

javascript - 如何折叠 switch 中案例的代码?

javascript - 使用ajax成功函数中的json对象(使用angularjs)

html - 在输入内部填充而不影响宽度

html - 更改下拉菜单的背景颜色

javascript - 如何从子级中获取父级中的数据- *