1

drupal 6 でマルチページ フォームを使用するカスタム モジュールを作成しています。'#type' => 'textfield' の場合、#default_value が機能しないことがわかりました。ただし、'#type'=>'textarea' の場合は '#default_value' 指定で正しく表示されます。

基本的に、受信した post パラメータに基づいて異なるフォーム定義 ($form) を返す FormFactory を作成しました。最初は、ディレクトリ リストの表示に戻り、ラジオ ボタンから特定のディレクトリに xml ファイルが含まれるまで選択すると、編集フォームになります。編集フォームには、xml ファイル内のデータ (#default_value) を表示するテキスト フィールドがありますが、ここでは「textfield」ではなく「textarea」タイプが機能します。

この場合、「#default_value」を機能させるにはどうすればよいですか?

以下は、非作業フィールドの定義です。

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

次に、以下に示すようにテキストエリアに変更して機能させました。

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

2 に答える 2

0

'#default_value'属性の使用に関して、テキストフィールドとテキストエリアフォーム要素の間に違いはないはずであり、どちらも宣伝どおりに機能します。したがって、自分のケースで機能しない場合は、誤動作の原因となる可能性のあるタイプミスやその他の違いを確認する必要があります。

質問を編集して、フォーム定義コードを追加していただけますか?

于 2009-11-30T14:26:45.613 に答える
0

Drupal のどのバージョンを使用していますか? 私は6.16を使用していますが、デフォルトでも奇妙な動作をしています。私の場合、テキストエリアでは機能しません。


私は英語を話さないので、default_value に非 ASCII 文字が含まれていました。現在、翻訳を使用して修正されています。

于 2010-04-28T09:29:24.193 に答える