2

これでhook_form_alterを使用してチェックボックスを変更しようとしています:

$form['foo']['#attributes'] = array();

および/または

$form['foo']['#default_value'] = '0';

基本的に、フォームの現在の出力は次のとおりです。

[foo] => array (
   [#type] => [checkbox]
   [#attributes] => array (
       [checked] => [checked]
      )
)

これは、デフォルトでチェックされているチェックボックスです。チェックボックスをオフにして、そのまま保存します。

デフォルトでチェックボックスをオフにすることができましたが、その値はまったく保存されません。チェックボックスをオンにした状態で、フォームはまだ送信中です。

私は何が欠けていますか?

4

1 に答える 1

0

これを試してください$form['foo'] ['#default_value'] = array( '0');

チェックボックスのデフォルト値は、常に値の配列です。フォームに表示される文字列ではなく、その値を覚えておいてください。

于 2012-12-14T06:14:13.303 に答える