views:

566

answers:

2

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,
                                      );
A: 

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?

Henrik Opel
A: 

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.

Josep Valls

related questions