You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:33:11