我正在使用 Jquery UI Autocomplete,它工作得很好,但我正在尝试解决这个问题,希望能得到一些帮助。自动完成在 asp 面板内的文本框上,按 Enter 键的表单上的默认行为是提交表单。如果用户在自动完成文本框中输入内容并按 Enter,我希望自动完成 Web 服务启动并在 Enter 上返回结果。我在网上阅读我想处理自动完成的 Keypress 事件,我一直在尝试但不确定如何调用自动完成以触发按键,如果有人知道如何做到这一点,我将在下面显示我的代码请通过代码中的示例显示,因为我在使用正确的语法来调用按键上的函数时遇到问题,感谢您的帮助,这里是代码。
//Attach autocomplete to txtCity so user can lookup SPLCS by cities
var city;
var txtCity = $("[id$=txtAutoCity]")
$(txtCity).autocomplete({
source: function (request, response) {
request.term = request.term.replace(/[^a-zA-Z\s]+/, "")
$.ajax({
url: "../../Services.asmx/GetOfficesByCity",
data: "{ 'city': '" + request.term + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
if (data.d != undefined) {
return {
value: item.Display,
result: item.CommaDelimited
}
}
else {
return true;
}
}))
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
},
autoFill: false,
minLength: 2,
delay: 800,
mustMatch: false,
selecFirst: false,
select: function (event, ui) {
var selectedObj = ui.item;
if (ui.item) {
city = ui.item.result.split(',')[0];
$("[id$=txtCity]").val(ui.item.result.split(',')[0]);
$("[id$=txtOffice]").val(ui.item.result.split(',')[1]);
$("[id$=txtDistrict]").val(ui.item.result.split(',')[2]);
}
},
// Any action to be performed once the auto complete list closes
close: function (event) {
}
}).keypress(function (e) {
if (e.keyCode === 13) {
//How to cancel default submit behaviour of form and call this
//autocomplete function to fire??
e.preventDefault();
//my_search_function($(txtCity).val())
}
});