1

hook_form_alter を使用して Web フォームにボタンを追加しています。

$form['submit_ajaxSearch'] = array(
                '#type' => 'button',
                '#ajax' => array(
                    'action' => 'click',
                    'callback' => 'search_callback',
                    'wrapper' => 'confirm',
                    'method' => 'replace',
                    'name' => 'search',
                ),
                '#value' => t('Address Lookup'),
            );

モジュールで jQuery .click() をセットアップできますが、実行する Ajax コールバックを取得できません。ボタンがモジュールの一部としてフォームに追加されている場合 (つまりmymodule_form、 だった場合) は機能しますが、その中の Web フォームに追加されるmymodule_form_alterと、コールバックの代わりに送信が実行されます。

Submitではなく、Ajax を実行する ajax コールバックを取得するにはどうすればよいですか?

4

2 に答える 2

1

Drupal は単純なボタンだけが必要な場合でも「送信」ボタンを作成するため、ボタンが送信コールバックを実行しないように drupal に指定する必要があります。これを行うには、そのボタンの「#executes_submit_callback」を false に設定します。

例えば:

           $form['submit_ajaxSearch'] = array(
                '#type' => 'button',
                '#ajax' => array(
                    'action' => 'click',
                    'callback' => 'search_callback',
                    'wrapper' => 'confirm',
                    'method' => 'replace',
                    'name' => 'search',
                ),
                '#value' => t('Address Lookup'),
                '#executes_submit_callback' => FALSE,
            );
于 2012-07-03T06:48:32.163 に答える