怎样在ASP.NET中用AJAX判断邮箱和用户都已经被注册过了。
解决方案 »
- aps.net中如何用js实现ajax?
- 求大牛指点,选哪个方向?
- 难题:windows系统下怎么实现没有后缀名(无扩展名)的URL重写,除了用路由和建立默认文件夹,要求能任意改写URL
- 在ASP.NET中,如何实例化一窗体?
- 兄弟们,来者有分,在服务器端,iframe页面中如何取得父页面中的值(在服务器端,而不是JS端)??
- 使用.Net 创建了,cab 项目,生成了CAB包,(包中有10个文件),为什么下载后,只有CAB内只有一个文件?
- GridView表头上下固定 左右不要固定
- 有关登陆问题!!!
- 一个多线程,SOCKET连接与发送数据的例子。
- 想要在asp.net中写一个com组件,推荐点上手的资料吧!!up有分哈
- aspx页面上画线路图-高手请进!!!
- 服务器未能识别 HTTP 标头 SOAPAction 的值
找个Jquery文档。看一下里面的$.ajax方法这个功能就OK了
可以用微软自己的ScriptManager也可以用jQuery的ajax
2、ScriptManager控件(重量级)后台连接数据库,将是否存在的结果刷到前台,前台获取这个结果,然后用js(jquery)弹出一个对话框。
<script language="javascript" type="text/javascript">
var xml;
function AJAX()
{
//考虑IE浏览器
xml = new ActiveXObject("Microsoft.XMLHTTP");
xml.open("get","ValidUser.aspx?userId="+document.getElementById("TextBox1").value,true);
xml.send(null);
xml.onreadystatechange = accp;
}
function accp()
{
if(xml.readyState==4)
{
if(xml.status == 200)
{
document.getElementById("Message").innerHTML = xml.ResponseText;
}
}
else
{
document.getElementById("Message").innerHTML = "正在读取数据";
}
}
</script>
ValidUser.aspx页面后台代码如下:protected void Page_Load(object sender, EventArgs e)
{
string value;
string userName = Request.QueryString["userId"].ToString();
if (userName == "admin")
value = userName + "用户已经存在!";
else
value = userName + "用户不存在!";
Response.Write(value);
Response.Flush();
Response.Close();
}
补充一下:
xml.open("get","ValidUser.aspx?userId="+document.getElementById("TextBox1").value,true);由于缓存问题,可以加上一个随机数。
//后台实例代码 ashx文件(可替换为从数据库中读取)
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World"); string name = context.Request.Params["name"].ToString().Trim();
if ("china".Equals(name))
{
context.Response.Write("1");//1标志login success
}
else
{
context.Response.Write("0");//0标志login fail
}
}
//前台实例代码 aspx文件
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title> <script src="js/jquery-1.4.2.js" type="text/javascript"></script> <script type="text/javascript">
$(function() {
$("#test").live("click", function() {
//alert(0);
$.ajax({
type: 'POST',
url: 'Handler1.ashx',
data: { "name": $("#name").val() },
success: function(data) {
if (1 == data)
alert('login success');
else
alert('login fail');
}
});
});
});
</script></head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" name="name" id="name" />
<input type="button" name="test" id="test" value="validate" />
</div>
</form>
</body>
</html>
Jquery版ajax验证,以上代码已经过测试。
其次准备一个页面,啥都不做,就执行上面一条sql语句 将admin换成你想要比较的用户名,结果输出1或0,1表示用户名存在,0表示用户名不存在
第三,在text控件的onblue的事件里添加一个ajax方法,当鼠标离开的时候将text的值传到第二步的用户名里.
第四,根据第二步得到的结果显示用户名是否存在
$.formValidator.initConfig({
formid:"form1",
onerror:function(msg){alert(msg)}
});
$("#loginName").formValidator({onempty:"登录名不能为空",onshow:"请输入您的登录名",onfocus:"登录名至少3个字符,最多20个字符",oncorrect:"该登录名可以使用"})
.inputValidator({min:3,max:20,empty:{leftempty:false,rightempty:false,emptyerror:"登录名不能含有空格"},onerrormin:"登录名至少3个字符",onerrormax:"登录名不能超过20个字符!",onerror:"登录名不能为空!"})
.regexValidator({regexp:"^\\w+$",onerror:"仅匹配由数字、26个英文字母或者下划线组成的字符串"})
.ajaxValidator({
type : "get",
url : "Register.aspx?loginName=" + encodeURIComponent($("#loginName").val()),
data:"loginname=" + $("#loginName").val(),
datetype:"json",
success : function(data){
if (data=="1")
{
return false;
}
else
{
return true;
}
},
buttons: $("#btnRegister"),
error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
onerror : "该登录名已被使用,请更换后重试。",
onwait : "正在对用户账号进行合法性校验,请稍候..."
});
});
建一个aspx的文件区从数据库里面查询是否存在。。然后respon.write结果就Ok了。。
$(function() {
$("#test").live("click", function() {
//alert(0);
$.ajax({
type: 'POST',
url: 'Handler1.ashx',
data: { "name": $("#name").val() },
success: function(data) {
if (1 == data)
alert('login success');
else
alert('login fail');
}
});
});
});
</script>
前台是这个
$.ajax({ type: "get", url: "action.ashx",
data: "action=checkurl¶meter=" + parameter + "&Rn=" + Math.random(),
dataType: 'html',
success: function(result) {
if (result == 1) {
$("#" + cid).html(parameter + '已经存在');
} else {
$("#" + cid).html(parameter + '可以使用');
}
}
});