jQueryを使用してAJAXバックグラウンドリクエストを行うASP.NETアプリケーションに取り組んでいます(jQueryは初めてです:))。私のjQueryコードは次のとおりです。
$(document).ready(function () {
$("#ctl00_cphContent_txtOrgName").keypress(function () {
var orgNameLen = $("#ctl00_cphContent_txtOrgName").val().length;
if (orgNameLen <= 4) {
$("#orgNameHints").empty();
$("#orgNameHints").css('display', 'none');
return;
}
$("#orgNameHints").css({ "visibility": "visible" });
$("#orgNameHints").html("Checking...");
var OrgName = $(this).val();
$.get("ProcessOrgName.aspx?n=" + OrgName, function (data) {
$("#orgNameHints").html(data);
$("#orgNameHints").show();
});
});
$("#ctl00_cphContent_txtOrgName").blur(function () {
$("#orgNameHints").empty();
$("#orgNameHints").css({ "visibility": "hidden" });
});
});
また、ASP コードは次のとおりです。
<asp:TextBox ID="txtOrgName" runat="server" MaxLength="100"></asp:TextBox>
<div id="orgNameHints" style="border: 1px solid silver; display:none; position:absolute; padding: 5px; background: #EFEFEF; z-index: 100;"></div>
これtxtOrgName
は、バックグラウンドで同じデータを持つ既存のレコードをチェックするために使用されるテキストボックスです (Google の検索キーワードのヒントと同様)。.get() メソッドは、検索キーワードを querystring として投稿しProcessOrgName.aspx
、データベースからそのような既存のレコードのリストを返します。
ここではすべてが正常に機能しますが、私が直面している問題は次のとおりです。
- Keypress() イベントは検索を呼び出します。stackoverflow を検索している場合 、w が欠落している stackoverfloを照会します。それで、正確な結果を得る方法はありますか?
- キーワードを検索すると問題なく表示されますが、バックスペースを押してテキストボックスをクリアすると、テキストボックスが既にクリアされた後にバックスペースを 2 回押すまで、同じ結果が表示されます。それで、バックスペースを押した場合に結果が表示されないようにするためのアイデアを教えてください。
orgNameHints
show();という名前の div を表示および非表示にするその他の方法。そして隠す(); 私の場合はうまくいきません。もっと正確にしたいです!- ユーザーが入力する代わりにキーワードをコピーして貼り付ける場合があるため、その場合も検索結果を取得する必要があります。
どんな助けでも本当に感謝しています。