2

Drupal 7 フィールド API を使用して、AJAX を介してフォームの一部をリロードしています。呼び出しを行うボタンがありますが、それを削除して、特定のイベントへの応答としてプログラムで呼び出しを行いたいです。AJAX ボタンのコードは次のとおりです。

$form['documents']['reload_document_list_button'] = array(
  '#type' => 'button',
  '#value' => 'Обновить список документов',
  '#ajax' => array(
    'callback' => 'reload_document_list',
    'wrapper' => 'document-list',
    'method' => 'replace',
  ),
);

(詳細については、 http://api.drupal.org/api/drupal/developer !topics!forms_api_reference.html/7#ajaxを参照してください。) これを行う方法はありますか?

PSボタンを非表示にして「クリック」イベントをトリガーするようにスタイルを設定できることはわかっていますが、これを行うためのより適切な方法を探しています。

4

1 に答える 1

6

これを行うには2つの方法があると思います。

まず、#ajaxあなたが読んだかもしれないプロパティはeventキーを受け入れます。デフォルトのbutton要素の場合、このイベントはmousedownです。(ここで確認できます)カスタムイベントに変更してcustomEvent、JavascriptコードからこのカスタムイベントをトリガーすることができますjQuery('#button-id').trigger('customEvent');

#ajaxまたは、プロパティ自体をチャックすることもできます。hook_menu(を使用して)AJAXエンドポイントを設定reload_document_listし、そのコールバックとして設定します。カスタムJavascriptを追加して、リクエストを作成し、レスポンスを処理します。#ajaxfromを使用するときにDrupalがAJAXリクエストを送信する方法を確認し、必要に応じmisc/ajax.jsてそれを参照として使用できます。

于 2012-06-18T13:32:58.727 に答える