JQuery Validator Plugin Asp.Net 调用服务器方法
-
22-07-2019 - |
题
我使用 JQuery 验证插件来验证表单(http://docs.jquery.com/Plugins/Validation/)
例如,我可以验证表单中的电子邮件。
我想做的是验证所选的用户名是否已经存在。因此,我需要调用查询数据库的服务器方法。我怎样才能做到这一点 ?
更新
从 balexandre 的回答中,我尝试以下操作:
$.validator.addMethod("userName",
function(value, element)
{
$.get
(
"CheckUser.aspx?User=" + value,
function(data)
{
if (data == "True")
{
return false;
}
else if (data == "False")
{
return true;
}
else
{
alert(data);
}
}
);
},
"User already exists");
$(document).ready
(
function()
{
$("#aspnetForm").validate
(
{
rules:
{
<%=txtUserName.UniqueID %>:
{
required: true,
email: true,
userName: true
}
}
}
);
}
);
在响应中,我写了一个布尔值(True 或 False)而不是 1 ou 0。
我知道我的验证函数被调用。问题是,即使用户不存在,它也总是显示错误消息。我尝试在返回 true 之前放置一条警报消息,以查看它是否已达到,确实如此。所以我不明白,为什么它不起作用......
解决方案
非常简单,这是一个很好的方法,我在我的项目中应用了很多
1 - 创建一个名为的 aspx 页面 验证用户可用性.aspx 带有代码隐藏文件
2 - 删除 aspx 文件中除第一行之外的所有行
3 - 在代码隐藏文件内 页面加载 事件调用你的数据库就像
protected void Page_Load(object sender, EventArgs e) {
string username = Request["usr"];
int r = 0;
if(!String.IsNullOrEmpty(username))
if( yourDAL.getUserAvailability(username) )
// your method would send true if user is available to be used
r = 1;
Response.Clear();
Response.Write(r);
Response.Flush();
}
4 - 现在在您的表单页面中,创建一个按钮,例如
<input id="btnCheckAvailability" type="button"
value="Check availability"
onclick="javascript:checkAvailability();" />
5 - 创建 checkAvailability() 方法
<script type="text/language">
function checkAvailability() {
var $user = $("#UsernameInputBox");
$.get("verifyUserAvailability.aspx?usr=" + $user.val(), function(data) {
// this will call the page passing the username and return 1 or 0
if( data == "1" )
$user.css("background-color", "green");
else
$user.css("background-color", "red");
});
}
</script>
其他提示
这应该做的伎俩......
http://riderdesign.com /articles/Check-username-availability-with-JQuery-and-ASP.NET.aspx
... OR
答案之一示出了如何调用服务&第二个显示如何调用页面方法。
不隶属于 StackOverflow