我正在使用基于dropdown.i创建WebMethod的文本框中的jquery自动完成,然后在视图(.aspx)中我想在请求中传递下拉列表选定值。 这是我的代码:
function AutoFill() {
$(".autocomp").autocomplete({
source: function(request, response) {
$.ajax({
url: 'Tourplan_tourname.aspx/GetCitYByName',
data: '{ "selectedtext": "' + {
postcode: $('#ddlTravelType').val()
} + ',"city": "' + request.term + '"}',
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function(data) {
if (data.d.length > 0) {
response($.map(data.d, function(item) {
return {
val: item.split('-')[0],
label: item.split('-')[1]
};
}))
} else {
response([{
label: 'No results found.',
val: -1
}]);
}
}
});
},
select: function(e, i) {
$("[id$=hdnCitiId]").val(i.item.val);
if (i.item.val == -1) {
$(this).val("");
return false;
}
},
minLength: 1
}).addClass("fixedHeight");;
}
这是我的WebMethod:
[WebMethod]
public static string[] GetCitYByName(string selectedtext, string city)
{
try
{
return BALHotelMaster.GetCitYByName(selectedtext, city);
}
catch (Exception ex)
{
throw ex;
}
}
答案 0 :(得分:0)
从文档中: -
source: Multiple types supported:
数组:数组可用于本地数据。有两种支持的格式:字符串数组:[ “Choice1”,“Choice2”]具有标签和值的对象数组 属性:[{标签:“Choice1”,值:“value1”},...]标签 属性显示在建议菜单中。价值将是 当用户选择项目时插入到input元素中。如果只是 指定了一个属性,它将用于两者,例如,如果您 只提供值属性,该值也将用作 标签
因此,将val
属性更改为value
: -
response($.map(data.d, function(item) {
return {
value: item.split('-')[0],
label: item.split('-')[1]
};
}))