我正在开发一个 ASP.NET 应用程序,该应用程序使用 jQuery 发出一些 AJAX 后台请求(我是 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() 方法会将搜索关键字作为查询字符串发布在ProcessOrgName.aspx
,它会从数据库中返回此类现有记录的列表。
Everyting在这里工作正常,但我面临的问题是:
- Keypress() 事件调用搜索,例如,如果我正在搜索 stackoverflow,它将查询缺少w的stackoverflo 。那么,有什么方法可以得到准确的结果。
- 当我搜索关键字时,它显示正常,但是当我按退格键清除我的文本框时,它仍然会显示相同的结果,直到我在文本框已经清除后再按两次退格键。所以,你们能否给出任何想法,以便在我按下退格键时它不会显示结果。
orgNameHints
显示和隐藏名为show()的 div 的任何其他方式;和隐藏();在我的情况下不起作用,我希望它更准确!- 在某些情况下,用户将复制粘贴关键字而不是键入,因此在这种情况下它也应该获得搜索结果。
非常感谢任何帮助。