JS代码:

/*
 * 需要通过Javascript代码来做两件事情
 * 1.button被按下的时候,需要将文本框中的数据获取到,然后发送给服务器端,最后接受服务器返回的数据,填充到我们预留的div中,这样用户就可以看到结果
 * 2.文本框上,用户按键之后,需要判断文本框中的内容是否为空,如果不为空,红色的边框和背景图就应该取消,否则保留
 * */

/*
 * 需要在页面装载完成是注册上这些工作
 * */
$(document).ready(function() {
	//这里面的内容就是页面装载完成后需要执行的代码
	var userNameNode = $("#userName");	
	//需要找到button按扭,注册事件
	$("#verifyButton").click(function() {
		//1.获取文本框的内容
		var userName = userNameNode.val();
		//2.将这个内容发送给服务器端
		if (userName == "") {
			alert("用户名不能为空");
		} else {
			$.get("http://127.0.0.1:8080/JQuery/UserVerify?userName=" + encodeURI(encodeURI(userName)),null,function(response){
					//3.接收服务器端返回的数据,填充到div中	
					$("#result").html(response);
				});		
			
		}
	});
	//需要找到文本框,注册事件
	userNameNode.keyup(function(){
		//获取当前文本框中的内容
		var value = userNameNode.val();
		if (value == "") {
			//让边框变成红色,并且带背景图
			userNameNode.addClass("userText");
		} else {
			//去掉边框和背景图
			userNameNode.removeClass("userText");
			
		}
	});
});

 

CSS代码:

.userText {
	/*控制文本框的边框是红色的实线*/
	border: 1px solid red;
	background-image: url(../images/userVerify.gif);
	background-repeat: repeat-x;
	background-position: bottom;
}

HTML代码:

<html>
	<head>
		<title>JQuery实战1-用户名校验</title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<link type="text/css" rel="stylesheet" href="css/userVerify.css" mce_href="css/userVerify.css" />
		<mce:script type="text/javascript" src="js/jquery.js" mce_src="js/jquery.js"></mce:script>
		<mce:script type="text/javascript" src="js/userVerify.js" mce_src="js/userVerify.js"></mce:script>
	</head>
	<body>
		请输入用户名:<input type="text" id="userName" class="userText"/> <input type="button" value="校验" id="verifyButton" />
		<div id="result"></div>
	</body>
</html>

服务端JAVA代码:

response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String param = request.getParameter("userName");
            if (param == null || param.length() == 0) {
                out.println("用户名不能为空");
            } else {
                String userName = URLDecoder.decode(param, "UTF-8");
                if (userName.equals("wangxingkui")) {
                    out.println("用户名[" + userName + "]已经存在,请使用别的用户名注册");
                } else {
                    out.println("可以使用用户名[" + userName + "]注册");
                }
            }
        } finally { 
            out.close();
        }

 

学习总结:

1)  HTML负责页面,CSS负责样式,JS负责页面行为;

2)  可以预先定义DIV或者SPAN节点来显示服务端返回的数据;

3)  可以通过#idname或者.classname来定制HTML页面的样式;

4)  可以通过$(document).ready(function(){ })的方式来定义页面装载完成后需要执行的方法;

5)  可以通过$()来获取页面的指定节点,参数是某种CSS的选择器。例如:$("#username")获取页面上ID为username的节点;

       $("table tr")获取table元素节点下所有的tr节点;

6)  可以在$()返回的JQuery对象上执行各种JQuery的方法。例如:$("#verifyButton").click(function(){});

7)  val()方法可以获得节点的value属性值;

8)  html()方法可以获得某个节点中的html内容;

9)  click()方法可以相应鼠标点击事件;

10) keyup()方法可以相应键盘弹起事件;

11) $().get方法可以以AJAX的方式与服务器进行交互,注册的callback()方法会在数据返回时被调用;

12) addClass()或removeClass()可以给某一节点添加或者删除一个class;

13) 发送给服务器端的数据在javascript中做两次encodeURI,然后在服务器端的代码中按UTF-8的方式做一次URLDecode,可以解决中文乱码问题;