我有以下内容:
$('#<%=txtCity.ClientID%>').autocomplete({
source: function (request, response) {
var parameters = {
isoalpha2: '<%=Session["BusinessCountry"].ToString()%>',
prefixText: request.term
};
$.ajax({
url: '<%=ResolveUrl("~/AtomicService/Assets.asmx/GetCitiesWithState")%>',
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(parameters),
success: function (data) {
response($.each(data.d, function (index, value) {
return {
label: value.slice(value.indexOf(',')),
value: parseInt(value.split(',')[0])
}
}));
}
});
},
minLength: 2,
delay: 50,
select: function (event, ui) {
var city = ui.item.label.split(',')[0];
var state = ui.item.label.split(',')[1];
alert(city);
alert(state);
$('#<%=txtCity.ClientID%>').val(city);
$('#<%=txtState.ClientID%>').val(state);
},
});
这是所有快乐的日子,除非我从自动填充列表中选择一个项目,我希望没有自动填充功能填充$('#<%=txtCity.ClientID%>')
元素。我该怎么做?我看到了.insertAfter
,这是我应该看的东西吗?
帮助表示赞赏。
答案 0 :(得分:19)
尝试从select
event
false
...
select: function(event, ui) {
var city = ui.item.label.split(',')[0];
var state = ui.item.label.split(',')[1];
alert(city);
alert(state);
$('#<%=txtCity.ClientID%>').val(city);
$('#<%=txtState.ClientID%>').val(state);
return false;
},
从文档(选择事件):
选择项目时触发 从菜单; ui.item指的是 选定的项目。默认操作 select是替换文本字段的 值与所选的值 项目。 取消此活动会阻止 更新的价值,但确实如此 不要阻止菜单关闭。
答案 1 :(得分:3)
虽然它可能在这里没有什么不同,但你应该说event.preventDefault
而不是返回false。请参阅event.preventDefault() vs. return false
当您不需要时,总是停止传播事件是不好的做法。