一个简单的ajax应用,请高手帮看下!
html代码如下:<script type="text/javascript" language="javascript">
var xmlhttprequest;
//function checkuser(username)
//{
//
// createXMLHTTP();
// var url="Default.aspx?name="+username+"&Event=check";
// xmlhttprequest.open("POST",url,true);
// xmlhttprequest.onreadystatechange=checkusername;
// xmlhttprequest.send(null);
//}
function createXMLHTTP()
{
if(window.XMLHttpRequest)
{
xmlhttprequest=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try
{
xmlhttprequest=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1)
{
}
try
{
xmlhttprequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e2)
{}
if(!xmlhttprequest)
{
window.alert("不能创建XMLHTTPRequest对象实例");
return false;
}
}
}
//function checkusername()
//{
// if(xmlhttprequest.readyState==4)
// {
// if(xmlhttprequest.status==200)
// {
// if(xmlhttprequest.responseText=="true")
// {
// document.getElementById("TorF").src="image/true.gif";
// document.getElementById("TorF").visible=true;
// //让注册按钮失效
// document.getElementById("btnreg").disabled=false;
// }
// else
// {
// document.getElementById("TorF").src="image/false.gif";
// document.getElementById("TorF").visible=true;
// document.getElementById("btnreg").disabled=true;
// }
// }
// }
//}
//注册新用户
function regUser()
{
createXMLHTTP();
if(document.getElementById("username").value=="")
{
alert("对不起,用户名不为空");
//document.getElementById("username").focus();也可以获得焦点
//this.document.form1.username.focus();
return false;
}
if(document.getElementById("userpass").value=="")
{
alert("对不起,密码不为空");
return false;
}
var url="Handler.ashx?Name="+document.getElementById("username").value+"&Pwd="+document.getElementById("userpass").value;
xmlhttprequest.open("GET",url,true);
xmlhttprequest.onreadystatechange=regUserInfo;
xmlhttprequest.send(null);
}
//注册用户回调函数
function regUserInfo()
{
if(xmlhttprequest.readyState==4)//判断对象状态
{
if(xmlhttprequest.status==200)//信息成功返回,开始处理信息
{
// if(xmlhttprequest.responseText=="true")//获取的Response.Write("true");里面的文本
// {
alert("恭喜,登录成功!");
document.getElementById("username").value="";
document.getElementById("userpass").value="";
// }
// else
// {
// alert("对不起,登录失败!");
// document.getElementById("username").value="";
// document.getElementById("userpass").value="";
// }
}
}
}
//将用户名和密码文本框值设为空
function reset()
{
//document.getElementById("username").focus();
document.form1.username.focus();
document.getElementById("username").value="";
this.document.getElementById("userpass").value="";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<%--<asp:TreeView ID="TreeView1" runat="server" ForeColor="#404040" LineImagesFolder="~/TreeLineImages"
ShowLines="True">
<Nodes>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建节点" Value="新建节点">
<asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>--%>
<input id="username" type="text" />
<input id="userpass" type="text" /><br />
<input id="btnOk" type="button" value="确定" name="btnOk" onclick="regUser()" />
<input id="upbtn" type="button" value="取消" name="upbtn" onclick="reset()" />
</div>
<div id="msg_display" style="background:yellow; font-weight:bold;font-size:13px;"></div>
</form>
</body>
</html>
Handle.ashx代码如下:
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
int result = -1;
SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["testConn"].ToString());
string strSql = string.Format("select * from login where admin='{0}' and pwd='{1}'", context.Request.QueryString["Name"].ToString().Trim(), context.Request.QueryString["Pwd"].ToString().Trim());
SqlCommand cmd = new SqlCommand(strSql, sqlConn);
sqlConn.Open();
result = cmd.ExecuteNonQuery();
if (!result.Equals(-1))
{
context.Response.Write("true");
}
else
{
context.Response.Write("false");
}
}
public bool IsReusable {
get {
return false;
}
}
运行后输入用户名密码后毫无反应,请高手赐教! --------------------编程问答-------------------- 为什么用这么原始的代码。。。
jQuery很容易就搞定了。 --------------------编程问答-------------------- UP --------------------编程问答-------------------- 首先在 function regUser()
里面增加几句调试信息
alert("t1");//看是否进入函数
createXMLHTTP();
alert("t2");//httpxmlrequest是否创建成功
然后在Handle.ashx放入断点,看是否进入服务端。
一步一步调试一下。 --------------------编程问答-------------------- 真是简单! --------------------编程问答-------------------- 框架或组件做这个东西肯定是非常简单了,但是在真正大型项目开发中,就别相信什么框架或组件(第三方控件)之类的东西,那些东西全都不可靠,而且对于网站性能提高都没好处,举个最简单的例子,TreeView是VS2005下控件,但是你找个服务器放上去,说不定就不支持这个控件,真正靠得住的东西还是要程序员手写出来的东西,Ajax现在的控件虽然很多,但是一点问题都没有的还是不多,所以才想用基本的代码实现下,工作量虽然大了点,但是性能和稳定性都有保证!
--------------------编程问答--------------------
谬误。 --------------------编程问答--------------------
那就别谈 封装 了 --------------------编程问答--------------------
那所有的应用全手写好了。--|
补充:.NET技术 , ASP.NET