Javascript JqueryUI 1.8和自动完成
我花了好几个小时试图让各种自动完成插件与JQuery一起工作 然后我找到了以下教程: 本教程很旧,使用jQuery1.4和jQueryUI1.8。如何修改其中的Javascript代码,使其更符合JQuery2.0和jQueryUI1.10Javascript JqueryUI 1.8和自动完成,javascript,jquery,jquery-ui,jquery-plugins,Javascript,Jquery,Jquery Ui,Jquery Plugins,我花了好几个小时试图让各种自动完成插件与JQuery一起工作 然后我找到了以下教程: 本教程很旧,使用jQuery1.4和jQueryUI1.8。如何修改其中的Javascript代码,使其更符合JQuery2.0和jQueryUI1.10 <script type="text/javascript"> $(function(){ //attach autocomplete $("#to").autocomplete({ //de
<script type="text/javascript">
$(function(){
//attach autocomplete
$("#to").autocomplete({
//define callback to format results
source: function(req, add){
//pass request to server
$.getJSON("friends.php?callback=?", req, function(data) {
//create array for response objects
var suggestions = [];
//process response
$.each(data, function(i, val){
suggestions.push(val.name);
});
//pass array to callback
add(suggestions);
});
},
//define select handler
select: function(e, ui) {
//create formatted friend
var friend = ui.item.value,
span = $("<span>").text(friend),
a = $("<a>").addClass("remove").attr({
href: "javascript:",
title: "Remove " + friend
}).text("x").appendTo(span);
//add friend to friend div
span.insertBefore("#to");
},
//define select handler
change: function() {
//prevent 'to' field being updated and correct position
$("#to").val("").css("top", 2);
}
});
});
这似乎有三个问题:
一个明显的错误是.item的用法,它已从JQuery UI-1.10中删除。
当尝试使用两个库的较新版本时,它会在文本框中保留默认文本。默认文本来自jQueryUICSS,类似于有两个结果。
它似乎使用了JSONP。可以只接受JSON吗?
这方面的任何帮助都将是巨大的 是的,只需使用JSON
$('#someField').autocomplete({
source: "friends.php?autocomplete=someField"
});
这将使用自动完成的附加术语参数进行回调;需要一个字符串数组,或具有标签和值属性的对象
我已将回调参数名称更改为自动完成,因为您可能有多个回调参数;最好使用有意义的描述性术语
见:
希望这能有所帮助。但这仍然会给1号和2号留下问题。有什么想法吗?我想不推荐使用autocomplete存储的内部数据;处理事件时不是ui.item属性。我是这样理解的:如果不希望出现默认行为,可以从select函数返回'false'。在这个例子中有很多未描述的目的逻辑-你想要一个简单的自动完成,还是所有这些带有“删除”链接的东西?我花了几个小时试图找到的是类似于SO的带有大量信息和链接的标签建议框。删除标签也很好。如果你能帮我到那里,你不知道这对我来说意味着什么。好吧,我可以在将来使用类似的东西!但是现在我通过服务器端解析&建议多个items表达式,从items开始,到目前为止,这是一个不匹配的部分术语。只要试着从select返回'false'来停止默认行为,看看它是否有效。