cakePHP中的表单助手“输入日期”错误?

| 我已经在cakephp中使用了formhelper
   echo $this->Form->input(\'birth_dt\', array( \'label\' => \'Date of birth\'));
我发现2月份的日期为“ 31” ... 这是一个错误吗?因为没有2月31日这样的事情     
已邀请:
        就像JohnP所说的那样,它不会根据月份值更改下拉列表。我的意思是-您可以在项目中没有任何Javascript的情况下使用ѭ1-那么它将如何处理? 不过,这将是一个非常酷的功能。使用jQuery或其他方法,您可以收听月份和年份的下拉菜单,并根据月份/年份的值更改日期下拉菜单的选项。 cal_days_in_month()。这样做并不难,我想它可以作为FormHelper的附加功能包含在Cake 2.0中。如图所示,如果打开
JsHelper
,则可以使用它。 好吧,因为我有点无聊,所以我写了这段this3ѭ代码:
<script type=\"text/javascript\">
$().ready(function()
  {
  $(\'#ModelFieldMonth, #ModelFieldYear\').change(function()
    {
    var day = $(\'#ModelFieldDay\').val();
    var month = $(\'#ModelFieldMonth\').val();
    var year = $(\'#ModelFieldYear\').val();

    var days_in_month = new Array();
    days_in_month[\'01\'] = 31; days_in_month[\'02\'] = 28; days_in_month[\'03\'] = 31; days_in_month[\'04\'] = 30; days_in_month[\'05\'] = 31; days_in_month[\'06\'] = 30;
    days_in_month[\'07\'] = 31; days_in_month[\'08\'] = 31; days_in_month[\'09\'] = 30; days_in_month[\'10\'] = 31; days_in_month[\'11\'] = 30; days_in_month[\'12\'] = 31;
    if (year % 4 == 0) { days_in_month[\'02\'] = 29; } // if leap year

    $(\'#ModelFieldDay\').find(\'option\').remove();
    var i = 0;
    for (i = 1; i <= days_in_month[month]; i++)
      {
      $(\'#ModelFieldDay\').append(\'<option value=\"\'+i+\'\">\'+i+\'</option>\')
      }
    $(\'#ModelFieldDay\').val(day);
    });
  });
</script>
    
        您是在说下拉菜单吗?好吧,也没有4月31日这样的事情:) 下拉列表仅生成给定范围内所有适用日期的列表。它不会根据所选月份更改值。所以不,这不是错误。     
        就像其他人所说的那样,下拉列表是静态的,而不是特定月份的。无论如何,您都应该在使用日期之前对其进行验证,因此您可以添加验证规则以通知用户是否选择了无效的组合。     

要回复问题请先登录注册