需要客户端验证是否已经存在。不知道这怎么弄。希望大家给我解决下。先谢谢你们!
解决方案 »
- GridView中(页尾)添加Label后赋值问题
- 提个关于webform里使用BackgroundWorker+Ajax的问题,请大侠看看想,谢谢
- 关于windows2003中的服务器应用程序错误
- 关于DropDownList的一个简单问题
- 救>>>>>>关于网页中的"折叠"和"展开"问题!!
- 怎样上传多文件问题
- 公告栏问题!!(在线等候!高分相送100分)
- UrlRewriter 三级域名重写问题,急,在线等。。。。
- ASP.net中倒数几秒的问题
- 怎么知道一个用户第一次进入主页的时候是否已经登陆啊!
- 询问个关于MAPABC的操作方法
- sql server事务中语句报错后,事务实际状态测试总结,请看看是否正确?
失去焦点,Ajax获得数据对比
密码:<TextBox>判断输入的这两个列中的值在数据库中是否存在,基础的基础啊
我知道是结合AJAX才能实现交互,但不会写啊,希望能给我能用的例子或代码!!!!
<head runat="server">
<title>这个是ajax页面</title>
<script language="javascript" type="text/javascript">
<!--
//定义用于存储XMLHttpRequest对象的变量
var xmlHttp = null;
//创建XMLHttpRequest对象
function creatXMLHTTP()
{
//判断浏览器是否支持ActiveX控件
if(window.ActiveXObject)
{
//将所有可能出现的ActiveXObject版本都放在一个数组中
var arrXmlHttpTypes = ['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0',,'MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP'];
//通过循环创建XMLHttpRequest对象
for(var i=0;i<arrXmlHttpTypes.length;i++)
{
try
{
//创建XMLHttpRequest对象
xmlHttp = new ActiveXObject(arrXmlHttpTypes[i]);
//如果创建XMLHttpRequest对象成功,则跳出循环
break;
}
catch(ex)
{
}
}
}
//判断浏览器是否将XMLHttpRequest作为本地对象实现
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
//响应XMLHttpRequest对象状态变化的函数
function httpStateChange()
{
if (xmlHttp.readyState==4)
{
if (xmlHttp.status==200 || xmlHttp.status==0)
{
//获得服务器返回的数据
//定义一个变量,用于判断用户名是否已经存在
var bFlag = "false";
bFlag=xmlHttp.responseText;
//查找节点
var node = document.getElementById("myDiv");
//更新数据
if (bFlag=="true")
{ alert(bFlag);
node.firstChild.nodeValue = "用户名已经存在";
myForm.submitButton.disabled = true;
}
else
{
node.firstChild.nodeValue = "用户名不存在,可以使用";
myForm.submitButton.disabled = false;
}
}
}
}
//校验用户名是否有效
function checkName()
{
//创建XMLHttpRequest对象
creatXMLHTTP();
if (xmlHttp!=null)
{
//创建响应XMLHttpRequest对象状态变化的函数
xmlHttp.onreadystatechange = httpStateChange;
var uname=myForm.myName.value
//创建HTTP请求
xmlHttp.open("get","Handler.ashx?id="+uname,true);
//发送HTTP请求
xmlHttp.send(null);
}
else
{
alert("您的浏览器不支持XMLHTTP,请更换浏览器后再进行注册。");
}
}
-->
</script>
</head>
<body>
<p align="center"><b>用户注册</b></p>
<form name="myForm">
用户名:<input type="text" name="myName" onblur="checkName()">
<span id="myDiv"> </span><br>
输入登录密码:<input type="password" name="password1"><br>
再次输入密码:<input type="password" name="password2"><br>
密码查询问题:<input type="text" name="problem"><br>
密码查询答案:<input type="text" name="key"><br>
<input type="button" value="提交" name="submitButton" disabled>
</form>
</body>
</html>//后台处理页面Handler.ashx
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
//context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
string flag = "false";
//获取js传递过来的id值
string username = System.Web.HttpContext.Current.Request.QueryString["id"];
//建立数据库访问类
SQLHelper.SQLHelper sqlhelper = new SQLHelper.SQLHelper();
//构建sql语句
string sqlstr = "select count(*) from Tbl_User_GS where fld_uid='"+username+"'";
//获取datatable
DataTable dt = sqlhelper.GetDataTable(sqlstr);
//获取sql返回值
int a = Convert.ToInt32(dt.Rows[0][0]);
if (a > 0)
{
flag = "true";
}
else
{
flag ="false";
}
context.Response.Write(flag);
}
public bool IsReusable {
get {
return false;
}
}}
2:把所有的用户名先查找出来,放在一个string 字符串里,挨个查找。
建议LZ使用AJAX。祝你好运。
这个是写在提交事件里的SqlConnection con1 = new SqlConnection(con);
con1.Open();
SqlCommand cmd1 = new SqlCommand("select count( * ) from Users where User_Name='" + name + "'", con1);
int k = int.Parse(cmd1.ExecuteScalar().ToString());
if (k > 0)
{
Label1.Visible = true;
Label1.Text = "对不起,该用户已存在!";
TextBox1.Text = "";
}
..............
还有可以失去焦点就判断写在TextChanged事件里,还要把AutoPostBack设置为true
不过这个方法有个缺点,失去焦点判断时会刷新页面,太恶心...
SqlConnection con1 = new SqlConnection(con);
con1.Open();
SqlCommand cmd = new SqlCommand("select count(*) from Tab where name='" + TextBox1.Text.Trim() + "'", con1);
int j = int.Parse(cmd.ExecuteScalar().ToString());
if (j > 0)
{
Label1.Visible = true;
Label1.Text = "该用户已存在!";
Label1.ForeColor = System.Drawing.Color.Red;
TextBox1.Text = "";
}