我们有一个asp.net Web应用程序,当前我们使用用户注册页面上的更新面板来检查用户是否存在。这样做有几个问题
1-更新面板速度慢
2-当用户切换到下一个文本框时,焦点丢失,因此用户必须手动单击该框,当更新面板位于弹出窗口中时,情况更糟
3-即使它不刷新页面,当我只需要调用激发事件时,仍会调用页面加载方法。
我们使用的是Web表单,而不是asp.net mvc
我们的问题是执行此操作的最佳方法是什么:检查用户名是否已存在。
客户端:常规JavaScript,JQuery,JSON,还有其他可能吗?
服务器端检查用户是否存在:另一个ASPX页面,Web服务,其他可能性?
你们还可以使用哪些其他技术?
提前致谢..
最佳答案
这是一个来自客户端的示例:http://jsfiddle.net/HackedByChinese/XPd2G/2/
我创建了一个简单的名为delayedkeyup
的插件,该插件会在用户几毫秒后停止键入后触发一个事件。当事件触发时,我进行ajax调用(在该示例中,它是一个模拟的JSON端点;您可以用对您的Web服务或标记为WebMethod
的页面方法的调用来代替它,该操作可以进行简单的数据库查找)。 ajax调用返回一个JSON消息,指示电子邮件是否有效。
我为结果添加了一个视觉指示器(绿色轮廓好,红色不好)。您可以将其替换为您使用的任何验证方案,或者显示一条消息。
注意:如果您不喜欢使用delaykeyup进行验证,则可以将其替换为.blur
或.change
,以便在用户单击或跳出文本框或分别更改值时进行查找。WebMethod
可能看起来像这样:
[WebMethod]
public string ValidateEmail(string email)
{
var valid = IsEmailValid(email); // your validation routine
return string.Format("{{ \"validEmail\":{0} }}", valid.ToString().ToLower());
}
关于javascript - ASP.NET检查数据库中是否存在电子邮件的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10957627/