入力フォームで#ajax使用時、#default_valueを書き換えても反映しない

カテゴリ コンテンツの作成 コアバージョン 7.26 関連モジュール Form Ajax

Form内で以下のように#ajaxを定義

$form[{from_field_name}]["und"]["#ajax"] = array(
 "callback" => "{callback_function_name}",
 "wrapper" => "{wrapper_name}",
 "method" => "replace",
 "effect" => "fade",
 "event" => "change",
);

Ajax実行時の関数「{callback_function_name}」内で下記のように#default_valueを指定しても反映しません。

function {callback_function_name}($form, $form_state) {
 〜
 $form[{wrapper_name}][{to_field_name}]['und']['#default_value'] = array({change_value});
 〜
 return $form[{wrapper_name}];
}

コメント

ユーザー actbrain の写真

#ajax先の設定値を変更するには#default_valueではなく#valueで設定します。

$form[{wrapper_name}][{to_field_name}]['und']['#default_value'] = array({change_value});
↑ではなく
↓のように指定する
$form[{wrapper_name}][{to_field_name}]['und']['#value'] = array({change_value});

ページ

OTHER FAQ