Javascript 单个表单按钮错误触发两个事件侦听器和警报框

Javascript 单个表单按钮错误触发两个事件侦听器和警报框,javascript,html,forms,alert,Javascript,Html,Forms,Alert,最初,我设置了多个按钮,如下所示: <button id="plus" type="button" onclick=assignVarAddition()>+</button> <button id="minus" type="button" onclick=assignVarSubtraction()>-</button> 我正在尝试清理js并将其缩短为一个函数,因此现在我正在尝试在一个函数中使用事件侦听器,其中为每个按钮的单击设置了一个单独

最初,我设置了多个按钮,如下所示:

<button id="plus" type="button" onclick=assignVarAddition()>+</button>
<button id="minus"  type="button" onclick=assignVarSubtraction()>-</button>
我正在尝试清理js并将其缩短为一个函数,因此现在我正在尝试在一个函数中使用事件侦听器,其中为每个按钮的单击设置了一个单独的事件侦听器和一个单独的alert()。但当我单击一个时,两个警报都会被触发,先是加法,然后是减法,总数会一个接一个地显示在单独的警报框中。 现在,按钮和功能设置为:

<button id="plus" type="button" onclick=assignVarAddition()>+</button>
<button id="minus"  type="button" onclick=assignVarSubtraction()>-</button>

function assignVarCalc() {
var firstNumb = +document.getElementById("Numb1").value;
var secondNumb = +document.getElementById("Numb2").value;
document.getElementById("plus").addEventListener("click", alert(firstNumb+secondNumb));
document.getElementById("minus").addEventListener("click", alert(firstNumb-secondNumb));
}
+
-
函数assignVarCalc(){
var firstNumb=+document.getElementById(“Numb1”).value;
var secondNumb=+document.getElementById(“Numb2”).value;
document.getElementById(“plus”).addEventListener(“单击”,警报(firstNumb+secondNumb));
document.getElementById(“减号”).addEventListener(“单击”,警报(firstNumb secondNumb));
}
我需要做什么来停止同时调用两个警报?这样,当按下“+”按钮时,警报框中只显示添加的Numb1和Numb2?不是加法,而是它自己的警报中的减法


请注意,我为html和javascript设置了单独的文件,并在html文件中设置了标记。

您尚未删除html中的onclick属性。以及您计划如何触发对“assignVarCalc()”方法的调用

您的问题的可能解决方案之一发布在此处:


我已经复制了你的代码,并将其放入我的HTML文件中。我只是提醒“测试”这个词来测试情况。看看我的代码:


+
-
document.getElementById(“plus”).addEventListener(“单击”,函数)(){
警报(“你好世界”);
});
document.getElementById(“减号”).addEventListener(“单击”,函数(){
警报(“你好世界”);
});

您可以共享相同的函数,并在每次“+”或“-”时发送不同的参数

函数赋值VARCALC(操作){
var firstNumb=+document.getElementById(“Numb1”).value;
var secondNumb=+document.getElementById(“Numb2”).value;
如果(操作=='+'){
警报(第一次麻木+第二次麻木);
}否则{
警报(firstNumb-secondNumb);
}
}
+
-

谢谢-我想我需要一个函数来分配firstNumb和secondNumb变量,然后进行计算。因此,最好在对话中提醒文本字符串。我将在项目的未来版本中使用它。我计划非常感谢Shappy,以帮助您@increda_jawThanks@Galeel Bhasha,这非常有效,但是我使用了下面的答案,因为我不需要事件监听器
<button id="plus" type="button" onclick=assignVarAddition()>+</button>
<button id="minus"  type="button" onclick=assignVarSubtraction()>-</button>

function assignVarCalc() {
var firstNumb = +document.getElementById("Numb1").value;
var secondNumb = +document.getElementById("Numb2").value;
document.getElementById("plus").addEventListener("click", alert(firstNumb+secondNumb));
document.getElementById("minus").addEventListener("click", alert(firstNumb-secondNumb));
}
document.getElementById("plus").addEventListener("click",
    function() { assignVarCalc('plus'); }
);

document.getElementById("minus").addEventListener("click",
     function() { assignVarCalc('minus');}
);

function assignVarCalc(operation) {
  var firstNumb = +document.getElementById("Numb1").value;
  var secondNumb = +document.getElementById("Numb2").value; 
  if(operation === 'plus') {
   return alert(firstNumb+secondNumb);
  }
  if(operation === 'minus') {
   return alert(firstNumb-secondNumb);
  }
}