[英]console.log doesn't work inside event submit
我不能做一个console.log。 在事件侦听器之外,它完美无缺。 但是当我想在事件侦听器(表单提交)中执行 console.log 时,控制台中没有任何内容。
<form id="formMovies">
<input type="text" id="title">
<button type="submit" id="boton">Guardar</button>
</form>
<script>
var _form = document.querySelector("#formMovies");
var _title = document.querySelector("#title").value;
_form.addEventListener('submit', ()=>{
console.log(_title);
});
</script>
发生这种情况是因为“提交”操作刷新了页面,这意味着将重新加载浏览器控制台并清除所有日志。
如果您想停止此行为以查看您的日志消息,您可以使用preventDefault()
或return false;
喜欢:
_form.addEventListener('submit', (e)=>{
e.preventDefault();
console.log(_title);
//Or
//return false;
});
问题是在单击按钮之前运行代码时,没有将值设置为_title
。 获取事件处理函数中的值。 您还可以使用event.preventDefault()
来阻止表单的提交,您可以看到输出。
<form id="formMovies"> <input type="text" id="title"> <button type="submit" id="boton">Guardar</button> </form> <script> var _form = document.querySelector("#formMovies"); _form.addEventListener('submit', (e)=>{ var _title = document.querySelector("#title").value; console.log(_title); e.preventDefault(); }); </script>
您必须阻止在type=submit
上触发的默认操作(用其他内容替换/重新加载页面),并根据您的需要在几秒钟后使用form.submit()
显式提交表单;
var _form = document.querySelector("#formMovies");
var _title = document.querySelector("#title").value;
_form.addEventListener('submit', evt => {
evt.preventDefault();
console.log(_title);
});
提交后,页面重定向到同一页面(没有 href 或 action)或不同,因此您无法看到控制台输出
据我所知,已经找到了 2 种方法来处理这个问题
代码片段
索引.html
<a class="clear-tasks btn black" href="some url">Clear Tasks</a>
应用程序.js
const clearBtn = document.querySelector(".clear-tasks");
clearBtn.addEventListener('click',function(e){
e.preventDefault();
console.log(e);
});
代码片段
索引.html
<a class="clear-tasks btn black" href="#">Clear Tasks</a>
应用程序.js
const clearBtn = document.querySelector(".clear-tasks");
clearBtn.addEventListener('click',(e)=>{
console.log(e);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.