Expression Engine SafeCracker格式Datepicker

时间:2012-10-08 12:25:06

标签: php javascript datepicker expressionengine safecracker

您好我正在使用safecracker在表达式引擎中创建一个表单,我的一个名为“date of birth”的字段使用日期字段类型。 jQuery数据导航器是由表达式引擎自动添加的,但是在制作这种类型的字段时,我无法看到如何添加我通常会添加到datepicker的任何选项或格式。

我的常规代码:

 $(function() {
    $( "#datepicker" ).datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd/mm/yy',
        maxDate: new Date()
    });
 });

我能想到的唯一选择是将此字段作为文本输入并在模板中自己添加datepicker,但这将删除它对此字段类型执行的EE的日期验证。

是否还要为此字段类型添加其他日期选择器选项?

1 个答案:

答案 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),而不是转换为时间戳,这更加实用和便携。

唯一真正的解决方案是为此编写自己的日期字段类型。不会很困难。