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

时间:2012-06-14 18:23:24

标签: javascript ajax drupal-7

我正在使用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。)有没有办法做到这一点?

P.S。我知道我可以设置按钮的样式以使其不可见并触发“点击”事件,但我正在寻找一种更简洁的方法来执行此操作。

1 个答案:

答案 0 :(得分:6)

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

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

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