您好我正在使用safecracker在表达式引擎中创建一个表单,我的一个名为“date of birth”的字段使用日期字段类型。 jQuery数据导航器是由表达式引擎自动添加的,但是在制作这种类型的字段时,我无法看到如何添加我通常会添加到datepicker的任何选项或格式。
我的常规代码:
$(function() {
$( "#datepicker" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd/mm/yy',
maxDate: new Date()
});
});
我能想到的唯一选择是将此字段作为文本输入并在模板中自己添加datepicker,但这将删除它对此字段类型执行的EE的日期验证。
是否还要为此字段类型添加其他日期选择器选项?
答案 0 :(得分:2)
好吧,您可以在Safecracker tag中设置datepicker="no"
,然后手动添加您的JavaScript。但是:您无法使用上面显示的自定义格式 - 要将输入验证为本机EE日期字段,必须使用datePicker格式yy-mm-dd
,加上当前时间格式为HH:MM AM/PM
- datePicker本身不执行此操作。 (See this post by one of EE's developers了解他们如何做到这一点。)
另一种方法是使用EEvent Helper日期字段,因为它不需要时间部分来验证(尽管它也需要yy-mm-dd
)。但是,datepicker="no"
仅影响原生日期字段,因此您必须设置safecracker_head="no"
- 但是您还将丢失其他字段类型所需的任何javascript或CSS你的表格。
Re:使用纯文本字段:除了验证问题之外,您的数据将被存储为输入的任何内容(mm / dd / yy),而不是转换为时间戳,这更加实用和便携。
唯一真正的解决方案是为此编写自己的日期字段类型。不会很困难。