JavaScript待办列表逻辑运算符&&失效问题求助
问题分析与修复
你的核心问题是空值判断的逻辑表达式写错了,导致两个字段都为空时无法触发弹窗。
错误原因
原代码中的判断语句:
const isEmpty = titleValue && textareaValue === "";
这个表达式的逻辑是:当标题输入框有内容,并且文本框为空时,isEmpty才为true,这和你“两个字段都为空才提示”的需求完全相反。
修复方案
需要分别判断两个字段是否为空,再用&&连接,确保只有当标题为空 并且 文本框为空时才触发提示:
// 正确的空值判断逻辑 const isEmpty = titleValue === "" && textareaValue === "";
完整修改后的saveTask函数
function saveTask() { const titleValue = titleInput.value; const textareaValue = textareaInput.value; // CHECK IF TO-DO IS EMPTY const isEmpty = titleValue === "" && textareaValue === ""; if (isEmpty) { alert("Please enter a task :)"); } else { const todo = { title: titleValue, text: textareaValue, } tasks.push(todo); console.log(tasks); } }
额外建议
如果要处理用户输入的空白字符(比如只输入空格),可以用trim()方法去除首尾空格后再判断,避免无效输入被存入数组:
const titleValue = titleInput.value.trim(); const textareaValue = textareaInput.value.trim(); const isEmpty = titleValue === "" && textareaValue === "";
内容的提问来源于stack exchange,提问作者Cyber-SW
相关产品推荐
相关产品推荐

