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

jQuery inputmask绑定日期输入框后val()赋值不显示问题求助

问题核心原因

两个叠加的冲突导致赋值失效:

  • 你使用的是<input type="date">原生日期输入控件,该类控件对传入的value值有强制格式要求:仅识别符合ISO 8601标准的yyyy-mm-dd格式字符串,你给inputmask配置的显示格式是dd/mm/yyyy,如果直接把非yyyy-mm-dd格式的日期值通过.val()传入,会被原生控件判定为无效值直接丢弃,最终只显示输入掩码。
  • 直接调用jQuery的.val()方法赋值不会触发inputmask的内部格式转换、值同步流程,插件不会自动修正传入值的格式适配控件要求。这也是你其他非date类型、绑定了inputmask的字段用相同赋值方式可以正常工作的原因。
解决方案

根据实际需求二选一即可:

方案1:保留原生date输入框(推荐,适配移动端原生日期选择体验)

赋值前先把接口返回的日期值转换成yyyy-mm-dd标准格式,再传入输入框。
如果接口返回的是dd/mm/yyyy格式字符串,转换示例代码:

const rawDate = data.Last_Reviewed_On;
// 按dd/mm/yyyy格式拆分日、月、年
const [day, month, year] = rawDate.split('/');
// 拼接为原生控件要求的yyyy-mm-dd格式,不足两位的月份、日期补前导零
const validDateVal = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
$('#Last_Reviewed_On').val(validDateVal);
// 触发inputmask值同步,保证显示状态一致
$('#Last_Reviewed_On').inputmask('setValue', validDateVal);

如果接口返回的是ASP.NET默认的/Date(xxxxxxxxxx)/序列化日期格式,先转成Date对象再格式化:

// 提取时间戳转Date对象
const timeStamp = parseInt(data.Last_Reviewed_On.replace(/\D/g, ''));
const dateObj = new Date(timeStamp);
const year = dateObj.getFullYear();
const month = String(dateObj.getMonth() + 1).padStart(2, '0');
const day = String(dateObj.getDate()).padStart(2, '0');
const validDateVal = `${year}-${month}-${day}`;
$('#Last_Reviewed_On').val(validDateVal);
$('#Last_Reviewed_On').inputmask('setValue', validDateVal);

方案2:移除原生date控件限制,完全通过inputmask控制日期格式

把输入框的type属性从date改为text,避开原生控件的格式强校验,原有inputmask配置不需要修改。修改后的表单元素代码:

<div class="col-sm-4 form-floating">
    <!-- type从date改为text -->
    <input type="text" class="form-control d-flex" id="Last_Reviewed_On" name="Last_Reviewed_On">
    <label for="Last_Reviewed_On">Last Reviewed</label>
</div>

修改后只要保证传入的日期值和inputmask配置的dd/mm/yyyy格式匹配,直接调用.val()或者inputmask的setValue方法都可以正常显示值。如果需要保留日历点选功能,搭配常规的日期选择插件和inputmask做适配即可。

快速校验方法

如果调整后仍有异常,可以先做两步快速定位:

  • 直接在浏览器控制台执行$('#Last_Reviewed_On').val('2024-12-25'),如果赋值后输入框正常显示日期,即可确认问题根源就是之前传入的值格式不符合原生date控件要求
  • 打印接口返回的Last_Reviewed_On字段原始值,检查是否存在多余空格、时区后缀、特殊字符,导致格式转换逻辑出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:09:22