текстовое поле друпальской формы #default_value не работает - PullRequest
1 голос
/ 30 ноября 2009

Я работаю над пользовательским модулем с многостраничной формой на drupal 6. Я обнаружил, что #default_value не работает, когда мое '#type' => 'textfield'. Однако, когда «#type» => «textarea», он отображается правильно с указанным «#default_value».

По сути, я написал FormFactory для возврата другого определения формы ($ form) на основе полученного параметра post. Первоначально, он возвращает отображение списка каталогов, затем пользователь выбирает из радио-кнопок, пока определенный каталог не содержит файл XML, он станет формой редактирования. Форма редактирования будет иметь текстовые поля, отображающие данные (#default_value) внутри xml-файла, однако здесь работает тип «textarea», а не «текстовое поле».

Как я могу заставить мою '#default_value' работать в этом случае?

Ниже приведено определение нерабочего поля:

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

Затем я изменил его на textarea, как показано ниже, чтобы он работал:

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

Ответы [ 2 ]

0 голосов
/ 28 апреля 2010

На каких версиях Drupal вы работаете? У меня 6.16 и странное поведение по умолчанию тоже. В моем случае не работает для textareas.


Я не говорящий по-английски, и у моего default_value были символы не ascii. Это исправлено с помощью перевода.

0 голосов
/ 30 ноября 2009

Не должно быть никакой разницы между текстовым полем и элементом формы textarea относительно использования атрибута '#default_value', и оба работают для меня, как рекламируется. Так что, если это не работает в вашем случае, вы должны проверить на наличие опечаток или других различий, которые могут привести к неправильному поведению.

Не могли бы вы отредактировать свой вопрос и добавить код определения формы?

...