如果要自動選擇選項,看看這個網站:http://github.com/scottgonzalez/jquery-ui-extensions
我使用這個代碼(JSON結果):
jQuery.fn.extend({
CityAC: function (selectorOrCountry) {
return this.each(function() {
var el = $(this);
var id = el.attr("id");
var md = el.metadata();
var parentEl = $('#' + md.parentId);
el.autocomplete({
source: function (request, response) {
var selectedCountry = "";
if (selectorOrCountry !== undefined && selectorOrCountry !== null) {
if ($(selectorOrCountry).size() > 0) {
selectedCountry = $(selectorOrCountry).val();
} else {
selectedCountry = selectorOrCountry;
}
}
$.ajax({
url: '/Jx/GetCities',
type: 'post',
dataType: 'json',
data: { text: request.term, country: selectedCountry },
success: function (data) {
if (data != null) {
response($.map(data, function (item) {
return {
label: item.Name,
value: item.Code
}
}));
}
}
});
},
select: function (event, ui) {
el.val(ui.item.label);
parentEl.val(ui.item.value);
return false;
},
minLength: 2
}).data('autocomplete')._renderItem = function (ul, item) {
var templateItem = $('<a></a>');
templateItem.append('<img src="/Assets/images/icon_town.png" width="16" align="absmiddle" class="ui-menuitem-icon" />');
templateItem.append(item.label);
return $('<li></li>')
.data('item.autocomplete', item)
.append(templateItem)
.appendTo(ul);
};
if (md.label !== undefined && md.label !== null) {
el.val(md.label);
parentEl.val(md.value);
parentEl.data(md.country);
}
});
}
});
$('#inputID').CityAC();
嗨,謝謝你的回覆。建議的代碼對於自動選擇和自動對焦非常有用。但是我的實際意圖是問這個問題是:重點應該列在列表中最後一項之後的列表中的第一項。但現在實際上並沒有立即出現,從最後一個項目移動到第一個項目會有一個關鍵延遲。你能以這種方式建議嗎?謝謝你 – Cherry 2011-06-09 12:38:59