javascript页面登陆
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript页面登陆相关的知识,希望对你有一定的参考价值。
一个简单的登陆合法性检测,就是我要求用户名不能为空,或者还有些其它要求,正则表达式,这个我知道写,我就是不知道,就是它出现的那个提示怎么加进去,用if进行判断,里面不能用Alert()显示提示信息,onblue()时我需要在Input框后面加入一个也是就是createTestChild()显示。这个我也成功了,可是当我onfouce()时怎么删除加进去的那句话呀!!!!!!!!!!!!!!急求,感谢感谢感谢!!!
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="" name="form" >
<TABLE align="center" >
<TR>
<td>用户名:</td><td>
<input type="text" name="test" onBlur="checkName(this)" onfocus="removethisTip(this)"></td>
</TR>
<tr>
<td>密  码:</td><td><input type="text" name="test"></td>
</tr>
<tr>
<td>确  认:</td><td><input type="text" name="test"></td>
</tr>
<tr>
<td>邮  箱:</td><td><input type="text" name="test"></td>
</tr>
<script>
function checkName(obj)
var isNull = /^$/;
if(isNull.test(obj.value))
document.getElementById("info").innerhtml="用户名不能为空!";
function removethisTip()
document.getElementById("info").innerHTML = "";
</script>
<BODY>
<FORM METHOD=POST ACTION="" name="form" >
<TABLE align="center" >
<TR>
<td>用户名:</td><td>
<input type="text" name="username" onBlur="checkName(this)" onfocus="removethisTip(this)">
<span id="info"></span>
</td>
<TR> 参考技术A 可以给你提示个,用this.parentNode.removeChild() 方法。因为你说的太模糊,我也不知你说的是什么了。。。 参考技术B 利用css控制,当输入的数据不符合要求时,显示某个div
用AJAX实现页面登陆以及注册用户名验证
试想如果在注册时,提交了注册信息,等了几秒后页面重载了,结果弹出一个提示框告诉你“用户名已被使用”,那将是很令人恼火的一件事。所以在这里,使用AJAX实现异步请求,即可在不重载页面的情况下实现与数据库的通讯。
创建XMLHTTPRequest对象
使用javascript在html页面中创建XMLHTTPRequest对象,实现AJAX异步请求:
- <span style="font-size:14px;"> var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(‘Microsoft.XMLHTTP‘);
- xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5&j=10", true);
- xmlhttp.onreadystatechange = function ()
- {
- if (xmlhttp.readyState == 4)
- {
- if (xmlhttp.status == 200)
- {
- alert(xmlhttp.responseText);
- }
- else
- {
- alert("AJAX服务器返回错误!");
- }
- }
- }
- xmlhttp.send();
- </span>
var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(‘Microsoft.XMLHTTP‘); //创建XMLHTTP对象,考虑兼容性
xmlhttp.open("POST", "AJAXTest.ashx?" + "i=5&j=10", true); //“准备”向服务器的GetDate1.ashx发出Post请求(GET可能会有缓存问题)。这里还没有发出请求。
readyState == 4 表示服务器返回完成数据了。之前可能会经历2(请求已发送,正在处理中)、3(响应中已有部分数据可用了,但是服务器还没有完成响应的生成)
AJAX的封装
在实际项目开发中,会有多处用到AJAX异步请求,可是创建对象代码这么长,复制粘贴都嫌麻烦,而且还会影响代码的观赏性,所以需要将AJAX进行封装。将其封装成js功能文件,并在网页中导入即可进行引用。简单AJAX封装后代码:
- <span style="font-family:Times New Roman;font-size:14px;"> function ajax(url,onsuccess,onfail)
- {
- var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(‘Microsoft.XMLHTTP‘);
- xmlhttp.open("POST", url, true);
- xmlhttp.onreadystatechange = function ()
- {
- if (xmlhttp.readyState == 4)
- {
- if (xmlhttp.status == 200)
- {
- onsuccess(xmlhttp.responseText);//成功时逻辑操作
- }
- else
- {
- onfail(xmlhttp.status);//失败是逻辑操作
- }
- }
- }
- xmlhttp.send(); //这时才开始发送请求
- }</span>
封装完成后,我们可以开始写登陆判断代码(我是用的是.net):
首先,创建一个html页login.htm以及ashx一般处理程序userhandle.ashx,请求的url中带上一个action参数,在一般处理程序中对请求进行处理。
- function Submit1_onclick() {
- var name = document.getElementById("name").value;
- var psw = document.getElementById("psw").value;
- if (psw != "" && name != "") {
- //调用AJAX
- ajax("../userhandle.ashx?operate=login&userName=" + name + "&psw=" + psw, function (resText) {
- if (resText == "fail") {
- alert("用户名或密码错误!");
- return false;
- }
- else {
- document.write(resText);
- }
- })
- }
- else {
- alert("请输入完整登陆信息!");
- return false;
- }
- }
- public void login(HttpContext context)
- {
- userBLL ub = new userBLL();
- string userName = context.Request["userName"];
- string userPsw = context.Request["psw"];
- bool b = ub.Login(userName, userPsw);//封装好的bll层方法,判断用户名密码是否正确
- if (b == true)
- {
- context.Session["Name"] = userName;
- context.Session["role"] = "user";
- context.Response.Write("success");
- }
- else
- {
- context.Response.Write("fail");
- }
- }
服务器判断完后,将success或者fail发送到客户端。这样一个使用AJAX异步请求实现登陆就完成了。
至于注册是判断用户名,我就只粘贴上来:
- function check() {
- var userName = document.getElementById("Text1").value;
- if (userName == "" || userName == null) {
- document.getElementById("nameMeg").style.color = "red";
- document.getElementById("nameMeg").innerHTML = "用户名为6-10位英文或数字";
- }
- else {
- ajax("../userhandle.ashx?operate=checkName&userName=" + userName, function (resText) {
- if (resText == "forbid") {
- document.getElementById("nameMeg").style.color = "red";
- document.getElementById("nameMeg").innerHTML = "用户名含有非法词语";
- } else if (resText == "already have") {
- document.getElementById("nameMeg").style.color = "red";
- document.getElementById("nameMeg").innerHTML = "用户名已被使用";
- } else {
- document.getElementById("nameMeg").style.color = "green";
- document.getElementById("nameMeg").innerHTML = "可以使用";
- }
- })
- }
- }
以上是关于javascript页面登陆的主要内容,如果未能解决你的问题,请参考以下文章