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

jQuery实现复选框勾选时向Div添加当日日期的问题求助

我来帮你梳理下问题所在,你的代码里有几个小问题导致功能在页面上不生效,咱们一步步解决:

1. 核心语法错误

你这段代码里的条件判断少了if关键字,这直接导致脚本无法正确解析执行:

// 错误写法
$('input[name=cb-switch]').is(':checked') { ... }

// 正确写法应该是
if ($('input[name=cb-switch]').is(':checked')) { ... }

2. 多余的appendTo(document)

$('div#startDate').html(currentDate)已经是直接给这个div设置内容了,再加上.appendTo(document)完全没必要,反而可能干扰DOM操作。

3. 函数触发时机问题

你的GetTodayDate()函数需要被正确调用,而且得确保DOM加载完成后再操作元素——你之前尝试加$(document).ready()出错,大概率是写法有误。

修正后的完整代码

我把代码重构了下,解决了上述问题,还加上了复选框状态变化的监听:

$(document).ready(function() {
  // 封装日期获取逻辑
  function getTodayDate() {
    const today = new Date();
    const day = today.getDate();
    const month = today.getMonth() + 1; // 月份从0开始,要+1
    const year = today.getFullYear();
    return `${day}/${month}/${year}`;
  }

  // 处理复选框状态的逻辑
  function updateDateDisplay() {
    const checkbox = $('input[name=cb-switch]');
    const dateContainer = $('div#startDate');
    
    if (checkbox.is(':checked')) {
      dateContainer.html(getTodayDate());
    } else {
      // 可选:取消勾选时清空日期
      dateContainer.empty();
    }
  }

  // 页面加载完成后,先检查一次复选框状态
  updateDateDisplay();

  // 绑定复选框的change事件,状态变化时自动更新
  $('input[name=cb-switch]').on('change', updateDateDisplay);
});

额外检查点

  • 确认页面里确实存在name="cb-switch"的复选框,以及id="startDate"的div元素;
  • 确认jQuery已经正确引入到页面中(因为你的代码用了$,必须先加载jQuery库)。

这样修改后,无论是页面加载时还是勾选/取消复选框时,日期都会正确显示或清空啦~

内容的提问来源于stack exchange,提问作者NewMike

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:25:57