0

I've used the formhelper in cakephp

   echo $this->Form->input('birth_dt', array( 'label' => 'Date of birth'));

I found the day "31" in the month of February... is this a bug? because there is no such thing as february 31

3 Answers 3

1

Just like JohnP said, it won't change the dropdown based on the month value. I mean - you can use the FormHelper without any Javascript in your project - so how would it do it anyway?

It would be a rather cool feature though. With the use of jQuery or whatever, you could listen to the month and year dropdowns, and change the options for the day dropdown based of the month/year value. cal_days_in_month(). Not too difficult to do, and I guess it could be included in Cake 2.0 as an additional feature of the FormHelper. As in, if you have the JsHelper on - you can use it.

Well, just because I'm a little bit bored, I wrote this piece of jQuery code:

<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>
Sign up to request clarification or add additional context in comments.

Comments

0

You're talking about the dropdowns right? Well, there's no such thing as April 31st either :)

The dropdowns just generate a list of all applicable dates for a given range. It doesn't change the value dependent on the month that is selected. So no, it's not a bug.

Comments

0

Like others have said, the dropdowns are static and not month specific. You should validate the date anyway before using it, so you can just add a validation rule to inform the user if they choose an invalid combination.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.