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

我认为有两种方法可以做到这一点:

首先,#ajax您可能已经阅读过的属性接受event密钥。对于按钮元素,默认情况下,此事件为mousedown. (您可以在此处查看)您可以将其更改为自定义事件,例如customEvent从您的 Javascript 代码中触发此自定义事件jQuery('#button-id').trigger('customEvent');

或者,您可以丢弃该#ajax属性本身。设置一个 AJAX 端点(使用hook_menu)并设置reload_document_list为它的回调。添加自定义 Javascript 以发出请求并处理响应。您可以查看使用#ajaxfrom时 Drupal 发送 AJAX 请求的方式,misc/ajax.js并在需要时将其用作参考。

于 2012-06-18T13:32:58.727 回答