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

Gravity Forms提交表单时将Datepicker日期转为MM/DD/YYYY格式

解决Gravity Forms日期选择器提交格式错误问题

你的问题出在自定义Datepicker只限制了可选日期范围,但没指定输出格式——选择日期后字段显示的是July 27,2022这类长文本格式,而Gravity Forms表单验证要求的是mm/dd/yyyy,所以提交时会报错。下面给你两种解决办法:

方法1:直接让日期选择器输出合规格式

修改你现有的JS代码,加上dateFormat参数指定格式:

$('#input_14_11').datepicker({
  minDate: '+1d',
  dateFormat: 'mm/dd/yy' // yy会自动转为四位年份,最终输出mm/dd/yyyy
});

这样用户选完日期后,字段里直接显示07/27/2022格式,表单验证就能正常通过。

方法2:保留友好显示格式,提交时自动转换

如果想让用户看到的是July 27,2022这类易读格式,但提交时用合规格式,可以这么做:

  1. 在Gravity Forms编辑器里给原日期字段新增一个隐藏字段(记好它的ID,比如input_14_12)
  2. 修改JS代码,用altField和altFormat把格式化后的日期同步到隐藏字段:
$('#input_14_11').datepicker({
  minDate: '+1d',
  dateFormat: 'MM dd, yy', // 用户看到的友好格式
  altField: '#input_14_12', // 绑定隐藏字段
  altFormat: 'mm/dd/yy' // 隐藏字段用合规格式,供表单提交验证
});
  1. 回到表单设置,把原日期字段设为“不验证、不保存”,转而验证和保存这个隐藏字段的值。

或者也可以直接监听表单提交事件,临时转换原字段的值:

// 监听表单提交动作
$('#gform_14').submit(function() {
  var dateField = $('#input_14_11');
  // 获取选中的日期对象
  var selectedDate = dateField.datepicker('getDate');
  if (selectedDate) {
    // 格式化为mm/dd/yyyy
    var formattedDate = $.datepicker.formatDate('mm/dd/yy', selectedDate);
    // 更新字段值
    dateField.val(formattedDate);
  }
});

把这段代码和你原来的Datepicker配置放在一起,提交时会自动把字段值转换成合规格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:06:24