Javascript 是否可以使用默认值;术语;“中传递的名称”;jquery用户界面自动完成";功能需要改变吗?
我正在尝试使用jQueryUIAutoComplete特性更改默认设置的“term”字段。是否可以轻松地将其更改为“q”(查询),而不必在“core”文件中进行更改 JavaScript: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",
<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){
警报(“选择”);
}
});
});
您可以使用callbacksource
选项提出自己的请求
是的,可以通过发出自己的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
无法做到的,因为它不允许您指定错误回调,虽然它不能很好地融入自动补全器中——但在我看来,如果您无法完成请求,您可能希望执行比空列表更激烈的操作。我收到一个错误,说请求未定义,我将在问题中添加我的代码。仔细查看您的代码:您缺少函数定义