Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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/jquery/74.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 是否可以使用默认值;术语;“中传递的名称”;jquery用户界面自动完成";功能需要改变吗?_Javascript_Jquery_Jquery Ui_Autocomplete_Jquery Ui Autocomplete - Fatal编程技术网

Javascript 是否可以使用默认值;术语;“中传递的名称”;jquery用户界面自动完成";功能需要改变吗?

Javascript 是否可以使用默认值;术语;“中传递的名称”;jquery用户界面自动完成";功能需要改变吗?,javascript,jquery,jquery-ui,autocomplete,jquery-ui-autocomplete,Javascript,Jquery,Jquery Ui,Autocomplete,Jquery Ui Autocomplete,我正在尝试使用jQueryUIAutoComplete特性更改默认设置的“term”字段。是否可以轻松地将其更改为“q”(查询),而不必在“core”文件中进行更改 JavaScript: <script> $(function() { $( "#spotify_song_search" ).autocomplete({ source: "http://ws.spotify.com/search/1/track.json",

我正在尝试使用jQueryUIAutoComplete特性更改默认设置的“term”字段。是否可以轻松地将其更改为“q”(查询),而不必在“core”文件中进行更改

JavaScript:

<script>
    $(function() {
        $( "#spotify_song_search" ).autocomplete({
            source: "http://ws.spotify.com/search/1/track.json",
            data: { 
                q: request.term 
            },
            dataType: "getjson",
            minLength: 3,
            select: function( event, ui ) { 
                alert('select'); 
            }
        });
    });
</script> 

$(函数(){
$(“#spotify_song_search”).autocomplete({
来源:“http://ws.spotify.com/search/1/track.json",
数据:{
问:请求.期限
},
数据类型:“getjson”,
最小长度:3,
选择:函数(事件,ui){
警报(“选择”);
}
});
});

您可以使用callback
source
选项提出自己的请求


是的,可以通过发出自己的AJAX请求来实现

假设您具有以下设置:

$("#myfield").autocomplete({
    source: '/my_url/myservice.xyz'
});
默认情况下,Autocomplete(如您所注意到的)发送如下请求:

myservice.xyz?术语=abc“

您可以为autocomplete的
source
选项提供函数引用。在该函数中,您可以提出自己的AJAX请求,如下所示:

$("#myfield").autocomplete({
     source: function (request, response) {
         // request.term is the term searched for.
         // response is the callback function you must call to update the autocomplete's 
         // suggestion list.
         $.ajax({
             url: "/my_url/myservice.xyz",
             data: { q: request.term },
             dataType: "json",
             success: response,
             error: function () {
                 response([]);
             }
         });
     });
});
这将生成一个看起来更像以下内容的请求:

myservice.xyz?q=abc


对不起,我没听清楚。你说“提出你自己的要求”是什么意思"? 源值不是可搜索的查询吗?@PeteA。。。你读过回调
source
选项吗?这个例子中还有一个例子。Cleaner使用
getJSON
,就像我链接到的例子一样,IMO.@DaveNewton:是的,你是对的。我只使用了长格式的
$.ajax
,因为这是一个很好的例子。但是
getJSON
将(几乎)等效且更干净。此外,使用
$.ajax
可以确保在出错时向小部件发送空列表,这是使用
getJSON
无法做到的,因为它不允许您指定错误回调,虽然它不能很好地融入自动补全器中——但在我看来,如果您无法完成请求,您可能希望执行比空列表更激烈的操作。我收到一个错误,说请求未定义,我将在问题中添加我的代码。仔细查看您的代码:您缺少函数定义