Html---------------------
<form runat="server" id="form1" >
用户名:<input type="text" id="userName"><span id="msg"></span>
<input type="submit" value="提交">
</form>Js-----------------------
$("#userName").blur(function(){
checkUserName();
});function checkUserName()
{
var username = $("#userName").val();
if (username.length < 3 || username.length > 15)
{
$("#msg_userName").text("用户名需要在3-15位字符之间");
return false;
}
$.post("CheckUserName.ashx", { "userName": username }, function (data) {
if (data == "ok") {
$("#msg_userName").text("输入正确!");
return true;
} else {
$("#msg_userName").text("该用户名已存在!");
return false;
}
});
return true;
}Cs---------CheckUserName.ashx-------------
//获取用户输入的信息
string userName = context.Request["userName"]; //根据用户输入的用户名,查询数据库中是否有此信息
string sqlStr = "userName='" + userName + "'";//查询语句
BLL.Users users = new BLL.Users();
DataSet ds = users.GetList(sqlStr); if (ds.Tables[0].Rows.Count > 0)
{
context.Response.Write("no");
}
else
{
context.Response.Write("ok");
}Cs-------.aspx.cs------------
//获取用户输入的信息
string userName = context.Request["userName"];
Model.user userModel=new Model.user();
userModel.userName=userName ;
BLL.user userBll=new BLL.user();
userBll.Add(userModel);若是我在form标签中,加入onsubmit="return checkUserName();",提交的时候倒是可以检查出来‘用户名需要在3-15位字符之间’,此时不会提交到后台,数据更不会插入到数据库;
但是我若是输入了一个数据库中已经存在的用户名,运用ajax,可以检查出来,并显示提示文字:‘该用户名已存在’;但是若是直接输入已经存在的用户名,直接点提交的话,不会出现任何报错文字,而且后台数据库中也会插入该条信息。所以,想问下大神,到底怎么设置,可以让【输入已经存在的用户名】,直接点提交时,出现报错信息,且不会向后台提交任何数据。
一个具体的例子:百度云输入验证码,若是输入不正确,点击提交时,会立马出现‘验证码输入错误’的提示,此时百度云不会登录。
<form runat="server" id="form1" >
用户名:<input type="text" id="userName"><span id="msg"></span>
<input type="submit" value="提交">
</form>Js-----------------------
$("#userName").blur(function(){
checkUserName();
});function checkUserName()
{
var username = $("#userName").val();
if (username.length < 3 || username.length > 15)
{
$("#msg_userName").text("用户名需要在3-15位字符之间");
return false;
}
$.post("CheckUserName.ashx", { "userName": username }, function (data) {
if (data == "ok") {
$("#msg_userName").text("输入正确!");
return true;
} else {
$("#msg_userName").text("该用户名已存在!");
return false;
}
});
return true;
}Cs---------CheckUserName.ashx-------------
//获取用户输入的信息
string userName = context.Request["userName"]; //根据用户输入的用户名,查询数据库中是否有此信息
string sqlStr = "userName='" + userName + "'";//查询语句
BLL.Users users = new BLL.Users();
DataSet ds = users.GetList(sqlStr); if (ds.Tables[0].Rows.Count > 0)
{
context.Response.Write("no");
}
else
{
context.Response.Write("ok");
}Cs-------.aspx.cs------------
//获取用户输入的信息
string userName = context.Request["userName"];
Model.user userModel=new Model.user();
userModel.userName=userName ;
BLL.user userBll=new BLL.user();
userBll.Add(userModel);若是我在form标签中,加入onsubmit="return checkUserName();",提交的时候倒是可以检查出来‘用户名需要在3-15位字符之间’,此时不会提交到后台,数据更不会插入到数据库;
但是我若是输入了一个数据库中已经存在的用户名,运用ajax,可以检查出来,并显示提示文字:‘该用户名已存在’;但是若是直接输入已经存在的用户名,直接点提交的话,不会出现任何报错文字,而且后台数据库中也会插入该条信息。所以,想问下大神,到底怎么设置,可以让【输入已经存在的用户名】,直接点提交时,出现报错信息,且不会向后台提交任何数据。
一个具体的例子:百度云输入验证码,若是输入不正确,点击提交时,会立马出现‘验证码输入错误’的提示,此时百度云不会登录。
解决方案 »
- 问:在table 控件里面如何查找自动生成的控件?
- 如何insert有关联并且主键是自增长的dataSet?
- Application Center Test 问题
- 如何取小数点后2位数字
- 请问ASP.net2.0中一个treeview控件图标样式的小问题!!!
- 請教asp.net高手
- 如何控制浏览器分页
- 请高手帮助!!急!!
- 一个网站其中的数据连接是如何复用呢??是否可以将其作成将起编译成一个类?还有...
- 我将一个datagrid绑定到一个表(在程序中dataview实现),怎么让它隐藏关键字段的显示,而且能在删除记录的时候取到这个ID号。。谢谢
- 关键词 “where” 附近语法错误 求大神解救
- ASP.NET网站发布之 <customErrors mode="Off"/>
提交后台是有验证的,主要是想用ajax实现客户端验证,因为一旦用户输入一个错误提交了,到达报错页面,再回来重新注册,那么原先输入的信息都不会存在了,这样用户体验度不是很好。当然用cookie也可以
若是我在form标签中,加入onsubmit="return checkUserName();",提交的时候倒是可以检查出来‘用户名需要在3-15位字符之间’,此时不会提交到后台,数据更不会插入到数据库;
没太细看,不过既然你写了onsubmit="return checkUserName();",那么checkUserName函数的最后一句要写上return false,阻止继续提交默认的submit;ajax回调函数的return false,和外层函数没直接关系,不能阻止sumit的重复调用,这个新手也可能初心犯错。