我有这段代码:
$("input#autocomplete").autocomplete({
source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]
});
它有效。如果我试着把其他东西放在那里,如:
$("input#autocomplete").autocomplete({
alert ("test");
source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]
});
然后它不起作用并给出此错误:语法错误:意外的字符串。
我希望在源代码之前进行AJAX调用:调用以便我可以将数据显示给用户。我是否误解了这应该如何起作用?
谢谢!
答案 0 :(得分:3)
autocomplete
将对象文字作为参数,这是一系列键:值对。 alert("test")
是放在其中间的任意代码。
var obj = {
key1: "value", //Okay
key2: false, //Still okay
console.log("Hello, World!") //Bad
};
答案 1 :(得分:1)
.autocomplete()是一个jquery插件或一个jquery ui附加组件,它们都有自己的方法选项和语法。如果除了插件的作者所允许的以外做任何其他事情,它将无法工作。
看起来你想在自动完成之前或之后运行一些JS。由bassistance.de和jquery ui版本独立的jquery自动完成,都有一些回调功能,可以让你这样做。一旦您从源代码中找到正在使用的文件,Google就可以获得其文档。
答案 2 :(得分:1)
查看自动填充事件,我认为“搜索”事件是您需要的事件,这里是一个链接http://jqueryui.com/demos/autocomplete#event-search
这是一个ajax示例
$( "#user_name" ).autocomplete({
source: "index.php?option=abc",
delay: 0,
minLength: 0,
autoFocus: true,
select: function (event, ui) {
$("#user_id").val(ui.item.id);
$(this).data("user_id",ui.item.id);//Store arbitrary data associated with the specified element
$(this).data("username",ui.item.value);//Store arbitrary data associated with the specified element
},
selectFirst: true,
autoFill: true,
mustMatch: true
})
.bind("blur",function() {
var user_id = $(this).data("user_id");
var username = $(this).data("username");
if(typeof username === \'undefined\')
{
username = \'\';
user_id = null;
}
$(this).val(username);
$("#user_id").val(user_id);
})
;
});//fine autocomplete