ajax验证用户名是否存在出错~
ajax验证用户名是否存在出错~不知道哪里错了~~~
报空异常
if (Request.QueryString["Event"].ToString()=="CheckName")
{
if (cm.CheckName(Request.QueryString["Name"].ToString()))
{
Response.Write("true");
Response.End();
}
else
{
Response.Write("false");
Response.End();
}
}
if (Request.QueryString["Event"].ToString()=="CheckName")
这句出现异常
未将对象的引用设置到对象的实例
我的js文件
var xmlHttp;
function CheckName(txtName)
{
createXMLHTTP();
var url = "DisposeEvent.aspx?Name="+txtName+"&Event=CheckName";
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange = checkUserName;
xmlHttp.send(null);
}
function creatXMLHTTP()
{
if(window.XMLHttpRequest)
{
xmllHttp = new XMLHttpRequest();//mozilla浏览器
}
else if(window.ActiveXObject)
{
try
{
xmHttp = new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
}
catch(e){}
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
}
catch(e){}
if(!xmlHttp)
{
window.alert("不能创建XMLHttpRequest对象实例!");
return false;
}
}
}
function checkUserName()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
if(xmlHttp.responseText=="true")
{
document.getElementById("imgCheck").src="img/true.gif";
document.getElementById("imgCheck").disabled = "";
document.getElementById("btnReg").disabled = false;
}
else
{
document.getElementById("imgCheck").src="img/false.gif";
document.getElementById("imgCheck").disabled = "";
document.getElementById("btnReg").disabled = true;
}
}
}
} --------------------编程问答-------------------- 自己顶下,急~~~ --------------------编程问答-------------------- 改成Request["Event"]试试 --------------------编程问答-------------------- 在ajax中post 的
在页面中
if (Request.Params["Event"] != null)
{
s_Parameter_Event= Request.Params["Event"].ToString();
}
加个保护 --------------------编程问答-------------------- 还是不行~~ --------------------编程问答-------------------- Request.QueryString["Event"]
先判断它是否问空.如果为空ToString()出错.
或者Convert.ToString(Request.QueryString["Event"])判断
3楼的也可以. --------------------编程问答-------------------- string s_Parameter_Event="";
if (Request.Params["Event"]!=null)
{
s_Parameter_Event = Request.Params["Event"].ToString();
}
if (s_Parameter_Event == "CheckName")
{
if (cm.CheckName(Request["Name"].ToString()))
{
Response.Write("true");
Response.End();
}
else
{
Response.Write("false");
Response.End();
}
}
这样写???还是不行嘛? --------------------编程问答-------------------- var objEvent = 'CheckName';
var url = "DisposeEvent.aspx?Name="+txtName+"&Event="+objEvent; --------------------编程问答-------------------- 现在不会出错了
但好像取不到页面上的值`~~ --------------------编程问答-------------------- 用3层写的,所有用到的代码如下`~~实在不知道错在哪里~~~
SqlHelper类
public static class SqlHelper
{
private static SqlConnection connection;
public static SqlConnection Connection
{
get
{
string connectionString = ConfigurationManager.ConnectionStrings["SqlDB"].ConnectionString;
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}
public static SqlDataReader GetReader(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}
}
DAL层
public class CustomerService
{
public SqlDataReader CheckName(string cname)
{
string sqlStr = "select * from customer where CNAME='"+cname+"'";
return SqlHelper.GetReader(sqlStr);
}
}
BLL层
public class CustomerManage
{
private CustomerService cs = new CustomerService();
public bool CheckName(string cname)
{
if (cs.CheckName(cname).Read())
{
return true;
}
else
{
return false;
}
}
}
js文件
var xmlHttp;
var objEvent = CheckName;
function CheckName(txtName)
{
createXMLHTTP();
var url = "DisposeEvent.aspx?Name="+txtName+"&Event="+objEvent+"";
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange = checkUserName;
xmlHttp.send(null);
}
function createXMLHTTP()
{
if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();//mozilla浏览器
}
else if(window.ActiveXObject)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
}
catch(e)
{}
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
}
catch(e)
{}
if(!xmlHttp)
{
window.alert("不能创建XMLHttpRequest对象实例!");
return false;
}
}
}
function checkUserName()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
if(xmlHttp.responseText=="true")
{
document.getElementById("imgCheck").src="img/true.gif";
//window.alert(xmlHttp.responseText);
//document.getElementById("imgCheck").disabled = "";
document.getElementById("btnReg").disabled = false;
}
else
{
document.getElementById("imgCheck").src="img/false.gif";
//window.alert(xmlHttp.responseText);
//document.getElementById("imgCheck").disabled = "";
document.getElementById("btnReg").disabled = true;
}
}
}
}
处理方法的页面
protected void Page_Load(object sender, EventArgs e)
{
CustomerManage cm = new CustomerManage();
if (Request.QueryString["Event"].ToString()=="CheckName")
if (cm.CheckName(Request.QueryString["Name"].ToString()))
{
Response.Write(Request.QueryString["Name"].ToString());
Response.End();
}
else
{
Response.Write(Request.QueryString["Name"].ToString());
Response.End();
}
}
前台的
<input id="txtName" type="text" onkeyup="CheckName(document.getElementById('txtName').value);"/> --------------------编程问答-------------------- 在线等,请大家帮忙,谢谢`~~ --------------------编程问答-------------------- 我给你一个验证的要不要 --------------------编程问答-------------------- 你也没说运行到哪停
回没回调返回的是什么? --------------------编程问答-------------------- 你看一下你接收到是不是乱码
还有你上面的提交方式用GET试试 --------------------编程问答-------------------- 能运行,也没出错
if(xmlHttp.responseText=="true")
{
document.getElementById("imgCheck").src="img/true.gif";
//window.alert(xmlHttp.responseText);
//document.getElementById("imgCheck").disabled = "";
document.getElementById("btnReg").disabled = false;
}
else
{
document.getElementById("imgCheck").src="img/false.gif";
//window.alert(xmlHttp.responseText);
//document.getElementById("imgCheck").disabled = "";
document.getElementById("btnReg").disabled = true;
}
这里每次都不等于true不管输的对还是错
--------------------编程问答-------------------- 你打印一下看看xmlHttp.responseText是什么 --------------------编程问答-------------------- 下班了要是没解决别天再说吧 --------------------编程问答--------------------
这个是打印的图片`~ --------------------编程问答-------------------- 图片路径改为绝对路径
../image/true.gif --------------------编程问答-------------------- 图片路径对的 --------------------编程问答-------------------- 我知道你是什么问题了 --------------------编程问答-------------------- if (cm.CheckName(Request.QueryString["Name"].ToString()))
{
Response.Clear();
Response.Write(Request.QueryString["Name"].ToString());
Response.End();
}
else
{
Response.Clear();
Response.Write(Request.QueryString["Name"].ToString());
Response.End();
}
这样修改下试试
补充:.NET技术 , ASP.NET