我正在使用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。我知道我可以设置按钮的样式以使其不可见并触发“点击”事件,但我正在寻找一种更简洁的方法来执行此操作。
答案 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请求的方式,并根据需要将其用作参考。