使CJuiDatePicker字段接受多种日期格式,更改JS验证(yii 1.1)

时间:2013-09-14 20:31:51

标签: jquery-ui yii jquery-ui-datepicker

我有一个zii.widgets.jui.CJuiDatePicker,它具有特定的日期格式(YMD),这是首选的数据库格式,但我希望与之关联的输入字段可以用D / M或D /填充M / Y也是如此。即,如果用户输入30/12或30/12/2013,我希望该字段能够理解2013-12-30。但是,该字段会进行一些JavaScript验证,以防止用户输入除数字或“ - ”之外的其他内容。

如何禁用仅允许用户输入数字和“ - ”的限制?如果可以,我可以检查字段onBlur并通过JavaScript将用户友好的日期转换为YMD,或者只是将值提交为D / M或D / M / Y并让接收数据的控制器即时转换它在验证之前到YMD。

(注意:我知道解决方案是将日期选择器设置为D / M / Y,但我希望用户能够使用斜线或破折号输入日期,而且仍然是datepicker不会猜测仅在输入日期和月份时的完整日期)

谢谢!

1 个答案:

答案 0 :(得分:0)

发现:

答案是jQueryUI datepicker的 constraintInput 设置。您可以将其设置为false。

http://api.jqueryui.com/datepicker/#option-constrainInput

在Yii:

$this->widget('zii.widgets.jui.CJuiDatePicker', array(
    'model' => $model,
    'attribute' => 'date',
    //(...)
    'options' => array(
        'dateFormat' => 'yy-mm-dd', // format of "2012-12-25"
        'constrainInput'=>false
    )
));