Javascript中用于事件侦听器的Else语句不工作
当我填充html字段时,下面的代码应该将“success”记录到控制台上,但它没有。任何帮助都很好 Javascript代码:Javascript中用于事件侦听器的Else语句不工作,javascript,html,Javascript,Html,当我填充html字段时,下面的代码应该将“success”记录到控制台上,但它没有。任何帮助都很好 Javascript代码: let taskInput = document.querySelector('.input').value; let myForm = document.querySelector('#my-form'); let msgArea = document.querySelector('.msg'); myForm.addEventListener('submit',
let taskInput = document.querySelector('.input').value;
let myForm = document.querySelector('#my-form');
let msgArea = document.querySelector('.msg');
myForm.addEventListener('submit', onsubmit);
function onsubmit(e) {
e.preventDefault();
if(taskInput=='') {
msgArea.classList.add('alert')
msgArea.classList.add('alert-danger');
msgArea.style.backgroundColor = '#ec4646';
msgArea.innerHTML = 'Alert! Fill the fields first';
}
else {
console.log('success'); //this is not logging onto the console
}
}
问题在于:
let taskInput=document.querySelector('.input').value代码>
const taskInput=document.querySelector('.input')
让inputVal=taskInput.value
taskInput.addEventListener('input',e=>{
inputVal=e.target.value
})
//不要忘记更新if语句
提交函数(e){
e、 预防默认值()
如果(inputVal==''){
/*你的代码*/
}否则{
console.log('success')
}
}
taskInput的值在程序开始时只设置一次。当您输入内容或提交表单时,它不会刷新。@Teemu只是尝试了一下,但没有显示它应该显示的错误show@deceze是的,你是对的。但是,我如何在每次需要它的当前值时解析itReaddocument.querySelector('.input').value
。@deceze谢谢你!现在它的工作方式正是我想要的
// STEP 1: Instead of:
let taskInput = document.querySelector('.input').value;
// Use:
let taskInput = document.querySelector('.input');
// STEP 2: Instead of:
// ...
if (taskInput == '') {
// ...
// Use:
if (taskInput.value.trim() === '') {