如何将jquery-ui datepicker本地化选项翻译成咖啡脚本?

时间:2014-04-06 09:36:08

标签: javascript jquery-ui localization coffeescript

我是javascriptcoffeescript的新手。我正在尝试将我的日期选择器初始化为另一种语言。

documentation ...

中给出以下代码段
$(function() {
    $( "#datepicker" ).datepicker( $.datepicker.regional[ "fr" ] );
});

如果我在Rails 4应用程序中的.js.coffee文件中执行以下操作,则它似乎无法正常工作。

jQuery ->
    $('#order_expected_delivery_date').datepicker
        dateFormat: 'yy-mm-dd'
        showAnim: 'slideDown'
        minDate: '+3D'
        maxDate: '+1M +3D'
        $.datepicker.regional[ "zh-CN" ] 

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

如果你看$.datapicker.regional['zh-CN'],你会看到类似的内容:

{
    closeText: ...,
    prevText: ...,
    ...
}

因此$.datepicker.regional中的值是包含datepicker的一组本地化选项的对象。这意味着您的datepicker电话看起来真的像这样:

$('#order_expected_delivery_date').datepicker
    dateFormat: 'yy-mm-dd'
    showAnim: 'slideDown'
    minDate: '+3D'
    maxDate: '+1M +3D'
    { closeText: '...', prevText: '...', ... }

这被解释为datepicker两个参数:

$('#order_expected_delivery_date').datepicker({
  dateFormat: 'yy-mm-dd', ...
}, {
  closeText: '...', ...
})

并忽略本地化选项。

可能最简单的方法是将本地化选项合并到您的选项中。

    options = $.extend({ }, $.datapicker.regional['zh-CN'], 
        dateFormat: 'yy-mm-dd'
        showAnim: 'slideDown'
        minDate: '+3D'
        maxDate: '+1M +3D'
    )
    $('#order_expected_delivery_date').datepicker options

我使用$.extend,因为您已经在使用jQuery。我还在您的选项之前添加了标准的本地化选项,因为dateFormat可能由本地化选项提供,您想要使用自己的选项。

您也可以像示例那样使用option method

$('#order_expected_delivery_date').datepicker 'option', $.datepicker.regional['zh-CN']

但这可能会覆盖您的dateFormat,因此可能需要一些小心。