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

jQuery text()方法不显示文本:Laravel8日期空值校验提示不生效

问题根因

代码存在逻辑覆盖问题:

  • 输入框清空后先进入空值判断分支设置了必填提示,但代码会继续执行后续的未来日期校验逻辑
  • 空值传入new Date()会生成无效日期对象,无效日期和当前日期比较结果恒为false,会触发第二个判断的else分支执行$("#dateError").text(""),直接把刚设置的必填提示清空,因此看不到空值提示。

修复方案

调整逻辑顺序,空值校验通过后直接终止后续判断即可,修改后的jQuery代码如下:

$(document).on("change", "#date", function(){
  var value = $("#date").val();
  // 先清空历史提示
  $("#dateError").text("").removeAttr('class');

  // 空值校验
  if (value === ""){
    $("#dateError").text("该字段为必填项").css('color', '#ff0000').attr('class', 'col-6');
    // 空值直接返回,不执行后续日期校验逻辑
    return;
  }

  // 非空场景才执行未来日期校验
  let today = new Date();
  // 把今日时间归零,避免当日日期被误判
  today.setHours(0, 0, 0, 0);
  let inputDate = new Date(value);
  if (inputDate > today){
    $("#dateError").text("日期不能为未来时间").css('color', '#ff0000').attr('class', 'col-6');
  }
})

可选优化

可以直接给<input>标签加上required属性,用HTML5原生表单校验实现必填提示,无需额外编写空值校验逻辑,兼容绝大多数现代浏览器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:45:05