我正在使用自动完成jquery函数来获取搜索框中的内容。
我正在进行一次ajax调用( ajax1 )以获取自动填充搜索框的内容,
在选择任何内容时,我正在再做一次ajax调用( ajax2 )以根据之前选择的值获取另一组数据。数据正在填充,但它得到了仅在搜索框的点击或按键上显示。 我希望自动填充。有什么办法吗? 此外,在按下搜索框时,它正在搜索ajax2中填充的内容,这应该来自内容ajax1。
有没有办法解决这个问题?
代码:
jQuery( "#Mobile" ).autocomplete({
source: function(request, response) {
jQuery.getJSON(ajax1, { term:request.term}, function(data){
response(data);
autocomplte_loading=false;
});
},
highlightClass: "highlight",
close:function(event,ui)
{
jQuery('.ui-autocomplete').html('');
},
response: function(event, ui)
{ },
select: function(event, ui) {
var selectedObj = ui.item;
jQuery('#Mobile').addClass('ui-autocomplete-loading');
autocomp_data = {datas};
jQuery('input[name=Mobile]').val(selectedObj.id);
// if(jQuery( "#Mobile" ).length >0) {
jQuery( "#Mobile" ).autocomplete({
source: function(request, response) {
jQuery.getJSON(ajax2, { "data"}, function(data){
response(data);
autocomplte_loading=true;
// jQuery("#Mobile").autocomplete('search',last_search_term);
});
},
highlightClass: "highlight",
close:function(event,ui)
{
jQuery('.ui-autocomplete').html('');
},
response: function(event, ui)
{},
select: function(event, ui) {
jQuery('#Mobile').addClass('ui-autocomplete-loading');
autocomp_data = {selectedproject:selectedObj.id, project:selectedObj.value, location:selectedObj.location, datafromhome: true};
jQuery('input[name=Mobile]').val(selectedObj.id);
}
}).data("ui-autocomplete")._renderItem = function(ul, item) {
var $a = jQuery("<a class ='x' for='as' href='javaScript:void(0);' id='test'></a>").text(item.name);
// jQuery("#Mobile").append($a).appendTo(ul);
return jQuery("<li></li>").append($a).appendTo(ul);
};
jQuery("#Mobile").autocomplete('search',last_search_term);
}
}).data("ui-autocomplete")._renderItem = function(ul, item) {
var $a = jQuery("<a data-url='"+item.projecturl+"' data-id='"+item.id+"' data-label='"+item.label+"'></a>").text(item.label);
var desired = this.term.replace(/[^\w\s]/gi, '');
last_search_term=desired;
highlightText(desired, $a);
return jQuery("<li></li>").append($a).appendTo(ul);
};