drupal form textfield #default_value not working

3.5k Views Asked by At

I am working on a custom module with multi-page form on drupal 6. I found that #default_value is not working when my '#type' => 'textfield'. However, when '#type'=>'textarea', it displays correctly with the '#default_value' specified.

Basically, I wrote a FormFactory to return different form definition ($form) based on the post parameter received. Initially, it returns the display of directories list, user then selects from radio buttos until a specific directory contains a xml file, it will become edit form. The edit form will have text fields display the data (#default_value) inside the xml file, however the type 'textarea' works here rather than 'textfield'.

How can I make my '#default_value' work in this case?

Below is the non-working field definition:

$form['pageset']['newsTitle'] = array(
                                      '#type' => 'textfield',
                                      '#title' => 'News Title',
                                      '#default_value' => "{$element->newsTitle}",
                                      '#rows' => 1,
                                      '#required' => TRUE,
                                      );

Then I changed it to textarea as shown below to make it work:

$form['pageset']['newsTitle'] = array(
                                      '#type' => 'textarea',
                                      '#title' => 'News Title',
                                      '#default_value' => "{$element->newsTitle}",
                                      '#rows' => 1,
                                      '#required' => TRUE,
                                      );
2

There are 2 best solutions below

0
On

There should be no difference between a textfield and a textarea form element concerning the usage of the '#default_value' attribute, and both work for me as advertised. So if it does not work in your case, you should check for typos or other differences that might cause the faulty behavior.

Could you edit your question and add your form definition code?

0
On

What Drupal versions are you on? I'm on 6.16 and I'm having weird behaviour for defaults too. In my case, not working for textareas.


I'm a non-english speaker and my default_value had non ascii characters. It's fixed now using translation.