我想在Drupal项目中使用jQuery的自动完成功能来自动查找具有给定标题的节点(内容片段)。我找不到任何与我想要做的选项匹配的例子,如下所示:
这是我到目前为止所做的:
jQuery(this).autocomplete({
source: '/api/node/title/'+jQuery(this).val(),
minLength: 2
}).data( "autocomplete")._renderItem = function(ul, item) {
return jQuery('<li />')
.data("item.autocomplete", item)
.appendTo(ul);
};
一旦选择了一个元素,我甚至不用担心该做什么 - 这个URL会以/ api / node / title?term = {blank}出现,即使我收到了JSON结果,什么都没有出现。有任何建议或类似用法的例子吗? jQuery UI网站上用于自动完成的示例并不是特别有用。
编辑:以下是预期响应的示例。
{
"nid":"2",
"vid":"2",
"type":"lorem",
"language":"und",
"title":"Grid Computing",
"uid":"0",
"status":"1",
"created":"1320092886",
"changed":"1320273538",
"comment":"1",
"promote":"1",
"sticky":"0",
"tnid":"0",
"translate":"0"
}
答案 0 :(得分:4)
表示1),您可以使用源回调
$('input').autocomplete({
source: autoDrupal,
minLength: 2});
function autoDrupal(requestObject, responseCallback) {
var url = '/api/node/title/' + requestObject.term;
$.get(url, function(data) {
// check my fiddle to transform drupal response in autocomplete result ;)
responseCallback(data);
});
};
2)我没有得到“标题”的意思,但它肯定可以在$ .get的响应中处理 3)事件处理程序可以做到这一点(一旦我理解了你可怕的“标题”)。类似的东西:
$('ul.ui-autocomplete').delegate('li', 'click', function () {
$('#stuff').css('color', 'red');
})