【问题标题】:Expression Engine SafeCracker Format Datepicker表达式引擎 SafeCracker 格式 Datepicker
【发布时间】:2012-10-08 12:25:05
【问题描述】:

您好,我正在使用 safecracker 在表达式引擎中制作一个表单,我的一个名为“出生日期”的字段使用日期字段类型。表达式引擎正在自动添加 jQuery 数据选择器,但我看不到如何添加任何选项或格式,我通常会在创建此类字段时添加到日期选择器。

我的正常代码:

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

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

是否有为此字段类型添加额外的日期选择器选项?

【问题讨论】:

  • 您想添加什么类型的选项?
  • 我的代码中的那些 changeMonth, changeYear, dateFormat, maxDate

标签: php javascript datepicker expressionengine safecracker


【解决方案1】:

好吧,您可以在您的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" 仅影响 native 日期字段,因此您必须设置 safecracker_head="no" - 但您也会丢失表单中其他字段类型所需的任何 javascript 或 CSS。

Re:使用纯文本字段:除了验证问题之外,您的数据随后将被存储为输入的任何内容 (mm/dd/yy),而不是被转换为时间戳,这更加有用和便携。

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

【讨论】:

  • 干杯,再次感谢您的帮助。您的第一个解决方案听起来不错,因为您可以让 datepicker 显示一种格式并发布所需的 yy-mm-dd EE 格式。不过,我也会考虑编写一个字段类型,因为让后端运行良好总是很不错的。
  • 啊,我不知道datePicker,很好。
  • 该选项称为“altFormat”,仅供参考。
  • 实际上你不需要 datepicker="no" 选项,因为这似乎会停止任何 datepicker 代码,即使你通过 {exp:jquery:script_tag ui='datepicker'} 单独包含它标签。最后对我有用的只是通过在页面底部实例化我的日期选择器来覆盖那里的日期选择器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
  • 2012-04-04
相关资源
最近更新 更多