jsp+ajax实现无刷新,鼠标离开文本框即验证用户名

jsp+ajax实现无刷新,鼠标离开文本框即验证用户名,操作如下:新建一个输入页面,起名为input.jsp,

<%@ page contentType="text/html; charset=utf-8"%>
<html>
	<head>
		<title>jsp+ajax实现无刷新_鼠标离开文本框即验证用户名</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<style type="text/css">
		.style1 {
			color: #FF3333;
			font-weight: bold;
		}
		
		.style14 {
			font-size: 13px
		}
		
		.text12black {
			font-size: 12px;
		}
		</style>
	</head>
	<body bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0"
		marginheight="0" marginwidth="0">
		<table width="748" border="0" align="center" cellpadding="0"
			cellspacing="0">
			<tr>
				<td height="5"></td>
			</tr>
		</table>
		<script language="javascript">
   //创建XMLHttpRequest对象 
 function GetO()  { 
   var ajax=false; 
    try     { 
     ajax = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch (e)     { 
      try       { 
       ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch (E)       { 
       ajax = false; 
      } 
    } 
    if (!ajax && typeof XMLHttpRequest!='undefined')     { 
     ajax = new XMLHttpRequest(); 
    } 
    return ajax; 
 } 
 
 function getMyHTML(serverPage, objID) { 
   var ajax = GetO(); 
    //得到了一个html元素,在下面给这个元素的属性赋值 
  var obj = document.all[objID]; 
    //设置请求方法及目标,并且设置为异步提交 
 ajax.open("post", serverPage, true); 
 ajax.onreadystatechange = function()  { 
    if (ajax.readyState == 4 && ajax.status == 200)     { 
    //innerHTML是HTML元素的属性,如果您不理解属性那就理解为HTML元素的变量 
    //ajax.responseText是服务器的返回值,把值赋给id=passport1的元素的属性 
    //innerHTML这个属性或说这个变量表示一组开始标记和结束标记之间的内容 
     obj.innerHTML = ajax.responseText; 
    } 
   } 
    //发送请求 
 ajax.send(null); 
   } 
   function CheckName()    { 
      getMyHTML("check.jsp?groupName="+name_form.group_name.value, "passport1"); 
   } 
   //这个函数的作用是当用户的焦点从其他地方回到group_name这个输入框时再给属性赋回原内容 
 function sl(tx)    { 
    if(tx=='passport1')   { 
      document.all[tx].innerHTML = "<div class='reds' align='left'>4-20 个字符 (包括大小写字母,中文,数字,特殊字符等) 1个汉字等于2个字符,建议使用中文。注册后不可修改。</div>"; 
     } 
   }

</script>
		<form name="name_form" method=post>
			<table width="60%" height="80" align="center" border="1" bordercolor="#96D6E8"
				class="text12black">
				<tr>
					<td width="22%" height="20" align="right">
						用户名:
					</td>
					<td width="61%" align="left">
						<INPUT name="group_name" type="text" value="" size=30
							maxlength="50" onBlur="javaScript:CheckName();"
							onFocus="return sl('passport1');" />
						<br />
						<div id="passport1" style="color: red"></div>
					</td>
					<td id="passport2" valign="top">
						<div class="explain_blue" align='left'>
							<span class="gray">4-20 个字符 (包括大小写字母,中文,数字,特殊字符等)
								1个汉字等于2个字符,建议使用中文昵称。注册后不可修改。</span>
						</div>
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>

在新建一个校验页面,起名为check.jsp,代码如下:

<%@ page contentType="text/html; charset=utf-8"%>
<%
	String action = "";
	String groupname = "";
	//检查用户名

	//用作数据库联接,可以根据你的情况修改,如果为测试可以不用*作记号的语句 

	try {

		action = request.getParameter("action");
		groupname = request.getParameter("groupName").trim();
		if ("".equals(groupname)) {
			out.println("<div class='reds' align='left'>用户名不能为空!</div>");
		} else if (groupname.length() < 4 || groupname.length() > 20) {
			out.println("<div class='reds' align='left'>用户名"
					+ groupname + "不合法!(长度为4到20位,且不能使用?#=等特殊字符)</div>");
		} else if ("zhangsan".equals(groupname)) {

			out.println("<div class='reds' align='left'>" + "用户名"
					+ groupname + "已被占用,请重新输入!</div>");
		} else {
			out.println("您的用户名可用");
		}

	} catch (Exception e) {
		System.out.println(request.getServletPath() + " error : "
				+ e.getMessage());
	}
%>



 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值