私たちは旅行ウェブアプリを開発しています。これは空港コードのオートコンプリートを使用したシナリオですが、意図したとおりに機能させるのに苦労しています。xmlからすべての空港コードと都市名を取得し、テキスト入力にバインドしています。シナリオは、ユーザーが「マニ」と入力した場合、 「すべての都市はマニで始まる」と表示されるはずです。代わりに、その用語のマニを含むすべての都市が表示されます(この画像を参照:http://imgur.com/61WS6)。ただし、ユーザーが空港コードを直接入力すると、明らかに結果が表示されます。
そのために、オートコンプリートにそのモンキーパッチを使用しましたが、現在は正常に機能しています。しかし現在、ユーザーが「JFK、LHR、MNL」のような空港コードを入力しても、結果は得られません。
これはすべての旅行サイトが機能する方法であり、私はこれを達成するためにあなたの助けが必要です。前もって感謝します。これがオートコンプリート用のモンキーパッチを使った私のコードです。
$(document).ready(function() {
var myArr = [];
function parseXml(xml)
{
$(xml).find("CityAirport").each(function()
{
myArr.push($(this).attr("CityName")+"-"+$(this).attr("AirportCode"));
});
}
function setupAC() {
$("#from").autocomplete({
source: myArr,
minLength: 1,
select: function(event, ui) {
$("#from").val(ui.item.value);
}
});
$("#to").autocomplete({
source: myArr,
minLength: 1,
select: function(event, ui) {
$("#to").val(ui.item.value);
}
});
}
$.ajax({
type: "GET",
url: "xmlFiles/flight/AirportCode.xml",
dataType: "html",
success: parseXml,
complete: setupAC,
failure: function(data) {
alert("XML File could not be found");
}
});
});
function hackAutocomplete(){
$.extend($.ui.autocomplete, {
filter: function(array, term){
var matcher = new RegExp("^" + term, "i");
return $.grep(array, function(value){
return matcher.test(value.value);// || value.value || value);
});
}
});
}
このコードはこのスレッドから取得されました:SOFからのオートコンプリート