ユーザーが入力ボックスに 3 文字以上入力したときに、サイトにオートコンプリートを配置したいと考えています。これにはautocomplete.jsプラグインを使用しています。私がやっていることは、キーアップ、配列の形式ですべての検索結果を返す URL への ajax 呼び出しの送信です。次に、autoComplete.Set("mygroup1", srvcsCitiesSafe, "newPopupStyle"); を呼び出します。$("#CAT_Custom_283923").trigger('keyup');
問題は、最初のキーアップ ajax 呼び出しで結果が表示されないことです。しかし、2回目のajax呼び出しと息子ではうまくいきます。何が起こっているのか誰か教えてもらえますか...ここに私のサイトのURLがありますhttp://dbtrialsite.businesscatalyst.com/オートコンプリートテキストボックスフィールドは郊外/都市です:
以下は私のコードです
$(document).ready(function() {
$("#CAT_Custom_283923").keyup(function() {
var mystring = $('#CAT_Custom_283923').val();
if (mystring.length == 2) {
console.log(mystring);
console.log(mystring.length);
console.log("Lenght is greater than 2");
var srvcsCitiesSafe=[];
var srvcsPCSafe=[];
var dataString = 'CAT_Custom_283923='+ $('#CAT_Custom_283923').val()+
'&CAT_Custom_284431='+$('#CAT_Custom_284431').val() ;
$.ajax({
type: "POST",
url: 'http://dbtrialsite.businesscatalyst.com/Default.aspx?CCID=17248&FID=100351&ExcludeBoolFalse=True&PageID=9350053',
data: dataString,
beforeSend: function () {
//put loader here, or hide something
console.log('Loading...');
},
success: function (response) {
console.log('Ok Results Loaded');
var srvcs_json = [];
mydata=$(response);
$(".srvcs", mydata).each(function() {
var myString=$(this).html();
srvcs_json.push( jQuery.parseJSON( myString ) );
});
var srvcsCities =[];
var srvcsPC =[];
for (var i=0; i < srvcs_json.length; i++) {
srvcsCities[i] = srvcs_json[i]['city'];
srvcsPC[i] = srvcs_json[i]['postcode'];
}
srvcsCitiesSafe = eliminateDuplicates(srvcsCities);
srvcsPCSafe = eliminateDuplicates(srvcsPC);
},
complete: function () {
//calling autofill function
console.log("auto called");
autoComplete.Set("mygroup1", srvcsCitiesSafe, "newPopupStyle");
$("#CAT_Custom_283923").trigger('keyup');
}
}); //end ajax call
}
});
////////////////////////////////////////////////////////////////////////////////////
});