对于出生日期字段,我希望用户选择从当前日期开始15年后的过去日期并禁用所有其他日期
答案 0 :(得分:1)
用户端的日历控制器使用Javascript工作,因为它需要用户友好。所以你必须从日历弹出窗口控制它。有很多javascript插件可用于此。 o禁用过去和将来的日期,你必须使用相关插件中给出的选项。
http://jqueryui.com/demos/datepicker/
http://javascriptcalendar.org/
但是,如果您需要对此进行服务器验证,则可以使用以下源代码。
答案 1 :(得分:1)
您可以在我的PHP-Pike库中使用此类:https://github.com/php-pike/Pike/blob/master/Validate/DateRange.php
如果您在表单元素上使用它:
<?php
$form = new Zend_Form();
$element = Zend_Form_Element_Text('birthdate');
$element->setLabel('Some label');
$element->addValidator(new Pike_Validate_DateRange(array('lt' => Zend_Date::now()->subYear(15)));
$form->addElement($element);
?>
这是服务器端验证。您可以使用Prasad他的答案进行客户端验证。这两方面都很明智。
如果你使用Jquery-ui datepicker,那么使用Jquery maskedinput插件也是很好的,以便用户严格以某种格式填写日期。类似的东西:
$('your-date-field').mask('9999-99-99', {
completed : function() {
$('your-date-field').datepicker('hide');
}
});
这将大大增加可用性:)