使用json和使用参数进行Jquery自动完成

时间:2011-03-04 07:16:29

标签: json jquery jquery-autocomplete

我正在尝试执行自动填充输入字段。每当用户在该字段中键入字母时,该字段的值将发送到服务器,服务器将使用匹配的单词进行回答。

var acOptions = {
             source:function (request, response) {
                 $.ajax({
                     url: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw", 
                     type: "GET", dataType: "json",
                     data: { expr: request.term},
                     success: function (data) {
                         response($.map(data, function (item) {
                             return item.value;
                         }))
                     }
                 })
                 }, 
     minChars: 1,
     dataType: 'json'
};

$( "#search_box_input" ).autocomplete(acOptions);

这是来自服务器的数据示例:

[{"value":"Greater"},{"value":"great"},{"value":"greatly"},{"value":"Greater-Axe"}]

前面的代码对服务器执行了正确的请求(服务器应答权限),但它没有在文本字段中显示任何内容。

我试图在没有明确的ajax对象的情况下进行自动完成,但后来我无法将该字段的当前值(请求的参数“expr”)发送到服务器:

var acOptions = {
        source: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw&expr=",
        minChars: 1,
        dataType: 'json'
};
$( "#search_box_input" ).autocomplete(acOptions);

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用jQuery提取字段的值以将其添加到URL参数字符串。

var acOptions = {
        source: "index.php?option=com_fmw&view=keywords_api&controller=keywords_api&format=raw&expr=" + $('#ID_OF_YOUR_TEXTBOX').val(),
        minChars: 1,
        dataType: 'json'
};
$( "#search_box_input" ).autocomplete(acOptions);