您好,我正在使用 safecracker 在表达式引擎中制作一个表单,我的一个名为“出生日期”的字段使用日期字段类型。 jQuery datapicker 是由表达式引擎自动添加的,但我看不到如何添加我在创建此类字段时通常添加到 datepicker 的任何选项或格式。
我的正常代码:
$(function() {
$( "#datepicker" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd/mm/yy',
maxDate: new Date()
});
});
我能想到的唯一选择是将此字段设置为文本输入,并在模板中自己添加日期选择器,但这会删除 EE 在此字段类型上执行的日期验证。
是否可以向此字段类型添加其他日期选择器选项?
最佳答案
那么,您可以在 Safecracker tag 中设置 datepicker="no"
,然后手动添加您的 javascript。但是:您不能使用上面所示的自定义格式 - 要使输入验证为 native EE 日期字段,它必须使用 datePicker 格式 yy-mm-dd
、plus 格式为 HH:MM AM/PM
的当前时间 - datePicker 本身并不这样做。 (See this post by one of EE's developers 了解他们是如何做到这一点的。)
另一种方法是使用 EEvent Helper 日期字段,因为它不需要时间部分进行验证(尽管它也需要 yy-mm-dd
)。但是,datepicker="no"
仅影响 native 日期字段,因此您必须设置safecracker_head="no"
- 但随后您还将丢失表单中其他字段类型所需的任何 JavaScript 或 CSS。
回复:使用纯文本字段:除了验证问题之外,您的数据将存储为输入的任何内容(mm/dd/yy),而不是转换为时间戳,这更加有用和可移植。
唯一真正的解决方案是为此编写您自己的日期字段类型。不会很难。
关于php - 表达式引擎 SafeCracker 格式日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12781715/