我正在尝试使用 jquery 在自动完成中显示一些城市,当任何人选择城市时,然后将目标 ID 设置为隐藏字段。我正在使用 Web 服务来获取 ajax 调用的数据。
这是我的网络服务方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<BALDestinations> AuotExtenderDestination(string destinationname)
{
DataSet ds=objDestination.GetDestination(destinationname);
List<BALDestinations> result = new List<BALDestinations>();
foreach (DataRow dr in ds.Tables[0].Rows)
{
BALDestinations b = new BALDestinations();
b.City = dr["City"].ToString();
b.DestinationId = dr["DestinationId"].ToString();
result.Add(b);
}
return result;
}
这是我的 jquery 自动完成文本框扩展器的代码
<script type="text/javascript">
$(document).ready(function () {
SearchText();
$('#btnSearch').click(function () {
alert($("#hiddenAllowSearch").val());
});
});
function SearchText() {
$(".txtdest").autocomplete({
// source: $local_source,
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebService.asmx/AuotExtenderDestination",
data: "{'destinationname':'" + $('.txtdest').val() + "'}",
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
},
focus: function (event, ui) {
$(".txtdest").val(ui.item.label);
return false;
},
select: function (event, ui) {
$(".txtdest").val(ui.item.label);
$("#hiddenAllowSearch").val(ui.item.value);
return false;
}
});
}
</script>
当我们在文本框中输入任何内容时,undefined 会出现在文本框中