简体   繁体   English

在一个表单中将两个事件监听器添加到两个提交按钮

[英]Add two eventlisteners to two submit buttons in one form

I have one form with 2 submit buttons, and for each one I want to add a different event listener on click, and perform a different action for each one.我有一个带有 2 个提交按钮的表单,对于每个表单,我想在单击时添加一个不同的事件侦听器,并为每个表单执行不同的操作。 But the second one is not working, the function does not fire.但第二个不工作,function 不火。 I am new on JS so any help will be welcome.我是 JS 的新手,所以欢迎任何帮助。 Thanks in advance.提前致谢。 My code is: HTML我的代码是:HTML

<form id="searching" action="javascript:void(0);">
              <input class="form-class w-50" type="text" id="search" placeholder="Input your search keyword" name="search">
              <br><br>
              <input type="submit" class="btn btn-warning" id="submit" value="Weather" name="weather">
              <input type="submit" class="btn btn-warning" id="submit2" value="Forecast!" name="forecast">
</form>

JS JS

const submit = document.getElementById('submit');
submit.addEventListener('click', event.getSearch.bind(this,'search'));

const submit2 = document.getElementById('submit2');
submit2.addEventListener('click', event.getForecast.bind(this));

The behavior you specify works fine in principle, so it may just be a matter of making sure the function you want to call is actually being called (and called in the appropriate context.)您指定的行为原则上可以正常工作,因此可能只是确保您要调用的 function 实际上正在被调用(并在适当的上下文中调用。)

(Since you're calling custom functions instead of actually submitting the form, you could also consider changing the submit inputs to normal buttons, and possibly even omitting the form element entirely.) (由于您调用自定义函数而不是实际提交表单,您还可以考虑将submit输入更改为普通按钮,甚至可能完全省略form元素。)

 const submit = document.getElementById('submit'), submit2 = document.getElementById('submit2'); submit.addEventListener('click', getSearch); submit2.addEventListener('click', getForecast); function getSearch(){ console.log("searching..."); } function getForecast(){ console.log("forecasting..."); }
 <form id="searching" action="javascript:void(0);"> <label for="search">Search </label><input id="search"/><br><br> <input type="submit" id="submit" value="Weather"/> <input type="submit" id="submit2" value="Forecast!"/> </form>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM