本文共 8346 字,大约阅读时间需要 27 分钟。
今日任务
Ø 使用AJAX完成用户名的异步校验Ø 使用JQuery完成用户名异步校验Ø 使用JQuery完成商品信息模糊显示Ø 使用JQuery完成省市联动效果返回XMLØ 使用JQuery完成省市联动效果返回JSON教学导航教学目标了解AJAX的基本使用掌握JQuery的AJAX部分的代码掌握JQuery返回XML和JSON格式数据如何处理教学方法案例驱动法1.1 上次课内容回顾:JDBC的添加,修改,删除查询.创建用户表:CREATE TABLE `user` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(20) DEFAULT NULL, `password` VARCHAR(20) DEFAULT NULL, `email` VARCHAR(20) DEFAULT NULL, `name` VARCHAR(20) DEFAULT NULL, `sex` VARCHAR(10) DEFAULT NULL, `birthday` DATE DEFAULT NULL, `hobby` VARCHAR(50) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;INSERT INTO `user`(`id`,`username`,`password`,`email`,`name`,`sex`,`birthday`,`hobby`) VALUES (1,'bbb','123','123@163.com','张三','男','1992-01-02','篮球, 足球, 排球'),(2,'ccc','123','ccc@itcast.cn','李四','女','1992-03-20','排球, 乒乓球'),(3,'aaa','123','aaa@itcast.cn','王守义','男','1990-08-11','足球, 排球'),(5,'tom','123','haha@qq.com','提莫','男',NULL,'篮球');设计注册页面:引入jar包和工具类:创建包结构:AJAX异步校验用户名:function checkUsername(){// 获得文本框的值:var username = document.getElementById("username").value;// 创建对象:var xhr = createXMLHttpRequest();// 2.状态改变触发一个函数xhr.onreadystatechange = function(){if(xhr.readyState == 4){if(xhr.status == 200){// 获得到响应内容:var data = xhr.responseText;if(data == 1){// 可以使用document.getElementById("s1").innerHTML = "用户名可以使用";document.getElementById("regBut").disabled=false;}else if(data == 2){// 已经存在document.getElementById("s1").innerHTML = "用户名已经被使用";document.getElementById("regBut").disabled=true;}}}}// 3.打开连接xhr.open("GET","/WEB15/ServletDemo3?username="+username,true);// 4.发送数据xhr.send(null);}
1.3 使用JQuery完成异步用户名的校验:1.3.1 需求:
$.ajax();
【Jquery的AJAX的部分的使用】引入JQuery的JS.【Jquery的AJAX的部分的入门】// jquery的load方法$(function(){ // 给按钮1绑定一个click事件:$("#bt1").click(function(){ $("#d1").load("/WEB15/ServletDemo4",{"name":"张三","password":"123"},function(data){ if(data == 1){ $(this).html("张三");}else{ $(this).html("其他");}});});});// 使用jquery的get方法:$(function(){ $("#bt2").click(function(){ $.get("/WEB15/ServletDemo4",{"name":"李四","password":"345"},function(data){ $("#d2").html(data);});});});//使用jquery的post方法:$(function(){ $("#bt3").click(function(){ $.post("/WEB15/ServletDemo4",{"name":"王五","password":"456"},function(data){ $("#d3").html(data);});});});// 使用jquery的ajax方法:$(function(){ $("#bt4").click(function(){ $.ajax({ type:"post",url:"/WEB15/ServletDemo4",data:"name=aaa&password=123",success:function(data){ $("#d4").html(data);}});});
});
1.3.3 代码实现:$(function(){// 给用户名的文本框绑定一个事件:$("#username").blur(function(){// 获得文本框的值:document.getELementById().value;var username = $(this).val();// 使用jquery的ajax的操作异步发送请求.$.post("/WEB15/ServletDemo3",{"username":username},function(data){if(data==1){// 用户名可以使用$("#s1").html("用户名可以使用");$("#regBut").prop("disabled",false);}else if(data==2){// 用户名已经存在$("#s1").html("用户名已经被占用");$("#regBut").prop("disabled",true);}});});});
1.4 案例三:使用JQuery完成仿百度的信息提示:1.4.1 需求:
在一个搜索页面中,键盘输入一些信息,在文本框下面给出一些提示信息(需要从服务器端进行查询的).创建数据库和表:
CREATE TABLE words(id INT PRIMARY KEY AUTO_INCREMENT,word VARCHAR(20));设计一个页面:
<center><h1>黑马一下</h1></center><center><input type="text" name="word" id="word" style="width:300px"/><input type="button" value="黑马一下"><center><div id="d1" style="display:none;position:absolute;top:110px;left:494px;border:1px solid blue;width:300px;height:200px;"></div>为文本框绑定事件:编写jquery代码
$(function(){ // 为文本框绑定事件:$("#word").keyup(function(){ // 获得文本框的值:var val = $(this).val();if(val != ""){ // 异步将这个值提交给服务器:$.post("/WEB15/ServletDemo5",{"val":val},function(data){ $("#d1").show();$("#d1").html(data);});}else{ $("#d1").hide();}});});1.5 使用JQuery完成一个省市联动的案例:使用XML作为响应内容:1.5.1 需求:XStream stream = new XStream(); // 设置标签的别名: stream.alias("city", City.class); // 设置子标签作为属性进行显示: stream.useAttributeFor(City.class, "id"); String xml = stream.toXML(list); System.out.println(xml); }
1.5.2.2 步骤分析:
Ø 设计页面:Ø 为第一个下拉列表绑定事件:changeØ 在change事件触发的函数中:提交数据到Servlet.Ø 在Servlet中:n 接收数据:接收提交的省份的信息.n Map<String,List<City>>n 将集合转成XML,将XML写回到浏览器.Ø 在回调函数中获得XML中的市的信息.Ø 生成一个option元素,将option元素添加到第二个下拉列表中。1.5.3 代码实现:设计一个页面:省市联动的案例
为第一个列表绑定事件:$(function(){// 为第一个列表绑定事件:$("#province").change(function(){// 获得下拉列表选中的值var val = $(this).val();// alert(val);$.post("/WEB15/ServletDemo6",{"province":val},function(data){// alert(data);$("#city").html("");$(data).find("city").each(function(){var id = $(this).children("id").text();var name = $(this).children("name").text();// alert(name);var op = "";$("#city").append(op);});});});});
1.6 使用Jquery完成省市联动的案例:使用JSON作为响应数据:1.6.1 需求:
转载于:https://blog.51cto.com/13587708/2103348