Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Jquery ui jQueryUI自动完成远程源定向错误_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

Jquery ui jQueryUI自动完成远程源定向错误

Jquery ui jQueryUI自动完成远程源定向错误,jquery-ui,jquery-ui-autocomplete,Jquery Ui,Jquery Ui Autocomplete,我有一个文本框的jQuery自动完成。初始化自动完成的代码为: $("#SearchBox1").autocomplete({ autoFocus: false, source: "Home/AutoComplete", select: function (event, ui) { alert(ui.item.label); } 当URL不包含路径时,jQuery自动完成会起作用,但当URL包含类似于localhost/home/GoToPage/?pa

我有一个文本框的jQuery自动完成。初始化自动完成的代码为:

$("#SearchBox1").autocomplete({
    autoFocus: false,
    source: "Home/AutoComplete",
    select: function (event, ui) {
    alert(ui.item.label);
    }
当URL不包含路径时,jQuery自动完成会起作用,但当URL包含类似于
localhost/home/GoToPage/?page=2
的内容时,自动完成会尝试使用
/home/GoToPage/home/Autocomplete
。此时,AutoComplete已完全中断,因为它使用的路径不正确


有什么好方法可以解决这个问题吗?

一个可能的解决方案是基于MadRabbit的评论和Dan Wellman jQueryUI的自动完成教程


我真的不了解上下文。您是否“在运行中”更改源,或者您正在谈论两个具有两个不同源的自动完成实例?您可以尝试在“源”中使用函数而不是urlparameter@DidierGhys--来源不应该改变。服务器上只有一个自动完成源,jQueryUI自动完成应该始终指向同一个源。问题是,它使用的源确实更改为无效的URL。@MadRabbit--您能解释一下“使用函数”是什么意思吗。您是否建议“创建一个执行ajax调用的函数,然后从服务器返回结果?”@sveatch42,例如
source:function(request,callback){$.get('/url/with/parameters?term='+request.term,callback);}
$("#SearchBox1").autocomplete({
        autoFocus: false,
        source: function (request, callback) {
            //pass request to server  
            $.getJSON("Home/AutoComplete?term=" + request.term, request, function (responseData) {

                //create array for response objects  
                var suggestions = [];

                //process response  
                $.each(responseData, function (i, val) {
                    suggestions.push(val);
                });
                //pass array to callback  
                callback(suggestions);
            });            
        },       
        select: function (event, ui) {
            $('#SearchBox1').val(ui.item.label);                           
    }
});