OK、私はajaxフォームのコールバックの内部でいくつかの基本的な検証をしています。私はいくつかのjavascriptを実行するために結果を使用したいと思います。私が試したことは次のようなものです:
私のフォームの中で変更:
if (isset($form_state['values']['field_temp_age'])) {
if (validate())
{
//...return product information
} else {
drupal_add_js('alert("Validation fails!");', 'inline');
}
}
これは機能しません。この場合、何も返されません。
また、これをajaxコールバックの内側から試してみました。
function my_ajax_callback(&$form, &$form_state) {
if (!validate()) drupal_add_js('alert("Foo!");', 'inline');
}
ここで何がアプローチかはわかりません。どのようにしてajaxリクエストから返された情報に基づいて任意のjavascriptを実行できますか?
ありがとう。
ベストアンサー
どのようにAJAX呼び出しを行っているのかわからないが、$ .ajaxのようなjQuery
AJAX呼び出しは、結果が返された後にコールバックを実行できるようにする。
FALSEまたはエラーを示すコードを呼び出し関数に返し、成功ハンドラの中に “validation
failed”ロジックを配置することをお勧めします。