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())
}
});