提交时,如何先验证信息,信息无误的话,再提交到后台
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,可以检查出来,并显示提示文字:‘该用户名已存在’;但是若是直接输入已经存在的用户名,直接点提交的话,不会出现任何报错文字,而且后台数据库中也会插入该条信息。
所以,想问下大神,到底怎么设置,可以让【输入已经存在的用户名】,直接点提交时,出现报错信息,且不会向后台提交任何数据。
一个具体的例子:百度云输入验证码,若是输入不正确,点击提交时,会立马出现‘验证码输入错误’的提示,此时百度云不会登录。