altFormat 在 jQuery datepicker 输入字段中不起作用

Posted

技术标签:

【中文标题】altFormat 在 jQuery datepicker 输入字段中不起作用【英文标题】:altFormat not working in jQuery datepicker input field 【发布时间】:2011-05-22 11:35:03 【问题描述】:

我有日期字段(id begin-date)

$( "#begin-date" ).datepicker( 
  minDate: -20,
  maxDate: "+1M +10D",
  dateFormat: "yy-mm-dd",
  altFormat: "yymmdd"
);

在发布时,它将格式打印为 yy-mm-dd (2010-12-08),而应打印为 yymmdd (20101208)

关于为什么它没有正确发布设置 altFormat 的任何想法?

渲染的输入字段:

<input type="text" name="begin_date" id="begin-date" class="validate[required]" value="" />

【问题讨论】:

【参考方案1】:

altFormat 选项不控制使用日期选择器的输入格式,而是控制由the altField option 指定的备用(通常隐藏)字段的格式,如下所示:

$("#begin-date").datepicker( 
  minDate: -20,
  maxDate: "+1M +10D",
  dateFormat: "yy-mm-dd",
  altFormat: "yymmdd",
  altField: "#alt-date"
);

You can test it out here;您可能想要的只是将 name 放在该 alt 字段上,这就是将发布的内容...没有 name 带有日期选择器的字段将不会被序列化/提交,例如:

<input type="text" id="begin-date" class="validate[required]" />
<input type="text" id="alt-date" name="begin_date" />

【讨论】:

@bsreekanth - 感谢您让我知道,看起来旧小提琴中的 jquery 链接不再指向正确的位置(小提琴代码中的更改),我更新了演示以使用更新版本:) 不幸的是,这只适用于一种方式 - 它会填充 altField,但 it will not initialize correctly 来自 altField 中的值。 这是我为解决这个问题而创建的constructor patch - 它从 altField 中获取值(尊重 altFormat)并自动初始化可见输入(尊重 dateFormat)。 缺少隐藏输入是我的问题【参考方案2】:

altFormat 必须与 altField 一起使用;

<input type="text" name="pushTime" class="datetime" id="pushTime"/> $(".datetime").datepicker(altFormat:"yy-mm-dd",altField: "#pushTime");

【讨论】:

以上是关于altFormat 在 jQuery datepicker 输入字段中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery datepicker "dateFormat" 和 "altFormat" 之间的区别

jQuery Datepicker unix 时间戳

jquery ui datepicker - altfield作为div而不是输入

日期时间选择器显示在模态 jquery-confirm 模态后面

jQuery UI 日期选择器的问题

日期选择器:jquery datepicker的使用