Drupal 7 Field API:如何以编程方式发送表单元素的#ajax属性中指定的AJAX请求?

ban*_*ero 2 javascript ajax drupal-7

我正在使用Drupal 7 field API通过AJAX重新加载我的部分表单.我有一个按钮来拨打电话,但我想将其删除并以编程方式拨打电话作为对特定事件的响应.这是我的AJAX按钮的代码:

$form['documents']['reload_document_list_button'] = array(
  '#type' => 'button',
  '#value' => '???????? ?????? ??????????',
  '#ajax' => array(
    'callback' => 'reload_document_list',
    'wrapper' => 'document-list',
    'method' => 'replace',
  ),
);
Run Code Online (Sandbox Code Playgroud)

(有关详细信息,请参阅http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#ajax.)有没有办法做到这一点?

PS我知道我可以设置按钮的样式,使其不可见并触发"点击"事件,但我正在寻找一种更简洁的方法来做到这一点.

Ama*_*mar 6

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

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

或者,您可以#ajax自己查看酒店.设置AJAX端点(使用hook_menu)并设置reload_document_list为其回调.添加自定义Javascript以发出请求并处理响应.您可以查看Drupal在您使用时发送AJAX请求的方式#ajax,misc/ajax.js并根据需要将其用作参考.