我有一个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不会猜测仅在输入日期和月份时的完整日期)
谢谢!
答案 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
)
));