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

尝试读取日期输入框值时返回undefined问题求助

解决日期选择器字段值读取返回undefined的问题

嘿,我来帮你排查这个读取日期字段值得到undefined的问题!结合你给出的代码片段,咱们从几个常见的点入手解决:

1. 先确认DOM元素和选择器是否匹配

首先得确保你的HTML里确实存在id="reportDateFrom"和id="reportDateTo"的输入框,而且拼写完全正确(大小写、字符都不能错)。

  • 如果是用Thymeleaf的th:field绑定数据,比如:
    <input th:field="*{reportDateFrom}" type="text" />
    
    那Thymeleaf生成的HTML里,ID可能会变成posTable.reportDateFrom(因为绑定了${posTable}对象),这时候你的jQuery选择器就得转义点号,改成$("#posTable\\.reportDateFrom"),或者直接用name属性选择:$("input[name='reportDateFrom']")。

2. 确保在DOM完全加载后再操作元素

如果你的取值代码是在页面还没加载完的时候执行的,那元素还没初始化,肯定会返回undefined。一定要把取值逻辑放在$(document).ready()里,或者绑定到日期选择器的回调事件中:

$(function() {
    $("#reportDateFrom").datepicker({
        dateFormat: 'dd-M-yy',
        // 选中日期后直接获取值
        onSelect: function(selectedDate) {
            console.log("选中的日期:", selectedDate);
            // 或者用val()方法
            console.log("输入框的值:", $("#reportDateFrom").val());
        }
    });

    $("#reportDateTo").datepicker({
        dateFormat: 'dd-M-yy'
    });

    // 如果是在其他事件里取值,比如按钮点击
    $("#submitBtn").click(function() {
        var fromDate = $("#reportDateFrom").val();
        var toDate = $("#reportDateTo").val();
        console.log(fromDate, toDate);
    });
});

3. 使用正确的取值方式

jQuery UI Datepicker提供了两种可靠的取值方式:

  • 直接读取input的value:这是最常用的,因为选择器会自动把选中的日期同步到input的value属性:
    var fromDate = $("#reportDateFrom").val();
    
  • 调用datepicker的getDate方法:这个会返回一个Date对象,需要的话可以转成指定格式:
    var fromDateObj = $("#reportDateFrom").datepicker("getDate");
    if (fromDateObj) {
        // 转成你需要的dd-M-yy格式
        var formattedDate = $.datepicker.formatDate('dd-M-yy', fromDateObj);
        console.log(formattedDate);
    } else {
        console.log("还没选择日期哦");
    }
    

4. 检查JS文件的加载顺序

必须保证JS的加载顺序是:jQuery → jQuery UI → 你的自定义JS文件,否则Datepicker无法初始化,输入框还是普通文本框,取值自然会出问题:

<!-- 先加载jQuery -->
<script src="/path/to/jquery.min.js"></script>
<!-- 再加载jQuery UI -->
<script src="/path/to/jquery-ui.min.js"></script>
<!-- 最后加载你的自定义脚本 -->
<script type="text/javascript" src="/KGDLC_Report/resources/js/page-scripts/userWiseReportKGDLC.js"></script>

按照上面的步骤排查,应该就能解决取值返回undefined的问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:38:17