Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JqueryUI 1.8和自动完成_Javascript_Jquery_Jquery Ui_Jquery Plugins - Fatal编程技术网

Javascript JqueryUI 1.8和自动完成

Javascript 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

我花了好几个小时试图让各种自动完成插件与JQuery一起工作

然后我找到了以下教程:

本教程很旧,使用jQuery1.4和jQueryUI1.8。如何修改其中的Javascript代码,使其更符合JQuery2.0和jQueryUI1.10

<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'来停止默认行为,看看它是否有效。