Pri*_*lia 0 ajax jquery jquery-ui autocomplete
我正在使用jQuery jquery-1.10.2和jQuery ui1.11.4
这是自动完成功能:
$("#txtPOI").autocomplete({
source: function(request, response) {
$.ajax({
url: '<?php echo site_url("crowd/get_POIs") ?>',
data: {cat: selectedCode, q: request.term},
dataType: "json",
type: "post",
success: function(data) {
response( $.map( data, function( item )
{
return{
label: item.title,
value: item.title,
contentid: item.contentid,
latitude: item.latitude,
longitude: item.longitude
}
}));
},
fail : function ( jqXHR, textStatus, errorThrown ) {
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
},
select: function( event, ui ) {
$("#txtPOI").val(ui.item.latitude);
alert('selected');
/*
alert(ui.item.contentid);
log( ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.title);
alert(ui.item.value);
*/
},
open: function(event, ui) {
$(".ui-autocomplete").css("z-index", 1000);
},
minLength: 3
});
}
});
Run Code Online (Sandbox Code Playgroud)
Ajax响应成功从数据库返回了数据。但是,当我尝试在内部进行select任何操作时,似乎什么也没有发生,这似乎select没有触发。我想获得的价值ui.item.contentid,以及ui.item.latitude和ui.item.longitude在自动完成项目的选择。
为什么select未触发事件?如何解决这个问题?
选择是自动完成对象而不是Ajax对象的选项。
尝试这个:
$("#txtPOI").autocomplete({
source: function(request, response) {
$.ajax({
url: '<?php echo site_url("crowd/get_POIs") ?>',
data: {cat: selectedCode, q: request.term},
dataType: "json",
type: "post",
success: function(data) {
response( $.map( data, function( item )
{
return{
label: item.title,
value: item.title,
contentid: item.contentid,
latitude: item.latitude,
longitude: item.longitude
}
}));
},
fail : function ( jqXHR, textStatus, errorThrown ) {
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
});
},
select: function( event ) {
// do what ever you want to do...
}
});Run Code Online (Sandbox Code Playgroud)