Reputation: 1347
I think I've found a bug in Cake's FormHelper class, but maybe I'm just not using the correct function, so hopefully somebody on here knows. Here's the relevant code:
<?php
echo $this->Form->input('first_name', array('value' =>'First Name', 'label' => false));
?>
As you can see, I'm just outputting an input text field that has a default value of First Name. The issue I'm experiencing is that if the user does not provide a valid name, then the form does not preserve the value that the user tried to submit with, instead it just shows the default value again (First Name). So basically, if I were to enter into the field "hey123" and then click submit, the form will show the appropriate validation error message next to the text field, but the text field itself won't contain my previous entry of hey123, it will show the First Name text again.
Is it possible to have the input field show the default value initially while also allowing whatever the user entered into the form to be preserved when validation errors occur? So in the previous example, instead of showing the First Name text on the error validation page, it'd show my original entry that caused the issue, hey123.
Upvotes: 0
Views: 162
Reputation: 6780
Use:
<?php
echo $this->Form->input('first_name', array('default' =>'First Name', 'label' => false));
?>
Note, use default
instead of value
. Default
will set a 'default' value, while value
will explicitly set the value of that field.
Upvotes: 5