接05的学习笔记。

四、使用JQ完成省市二级联动

1.需求分析

使用jquery完成省市二级联动

2.技术分析

2.1数组的遍历操作

方式一:

$(function(){

// 全选/ 全不选

$("#checkallbox").click(function(){

var isChecked = this.checked;

//使用对象访问的方式进行遍历,语法:$().each(function(){})

$("input[name='hobby']")[ThinkPad1] .each(function(){

this.checked = isChecked;

});

});

});


被遍历的对象(是一个集合)

方式二:

$.each( [0,1,2][ThinkPad1] , function(i[ThinkPad2] , n[ThinkPad3] ){

alert( "Item #" + i + ": " + n );

});


被遍历的对象

角标

被遍历后的内容

2.2 文档处理操作

追加内容

apend:  A.append(B)  将B追加到A的内容的末尾处

appendTo: A.appendTo(B)  将A加到B内容的末尾处

3.步骤分析

第一步:确定事件(change事件),在绑定的函数里面获取用户选择的省份

第二步:创建二维数组来存储省份和城市

第三步:遍历二维数组中的省份(与用户选择的省份进行比较)【使用JQ的遍历操作】

第四步:接着遍历数组中的城市

第五步:创建一个城市文本节点

第六步:创建option元素节点

第七步:将文本节点添加到元素节点中【使用JQ的文档操作方法】

第八步:获取第二个下拉列表并将option元素节点添加进去

第九步:清除第二个下拉列表的option内容

4.代码实现

<script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>

<script>

$(function(){

//2.创建二维数组用于存储省份和城市

var cities = new Array(3);

cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");

cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");

cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");

cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");

$("#province").change(function(){

//10.清除第二个下拉列表的内容

$("#city").empty();

//1.获取用户选择的省份

var val = this.value;

//alert(val);

//3.遍历二维数组中的省份

$.each(cities,function(i,n){

//alert(i+":"+n);

//4.判断用户选择的省份和遍历的省份

if(val==i){

//5.遍历该省份下的所有城市

$.each(cities[i], function(j,m) {

//alert(m);

//6.创建城市文本节点

var textNode = document.createTextNode(m);

//7.创建option元素节点

var opEle = document.createElement("option");

//8.将城市文本节点添加到option元素节点中去

$(opEle)[h1] .append(textNode);

//9.将option元素节点追加到第二个下拉列表中去

$(opEle).appendTo($("#city"));

});

}

});

});

});

</script>


[h1]注意DOM无法使用JQ的方法 所以要进行$()来转换

五、使用JQ完成下拉列表左右选择

1.需求分析

见图片文字部分内容。

2.分析

第一步:确定事件(鼠标单击事件click)

第二步:获取左侧下拉列表被选中的option($(“#left option:selected”)) [假设左侧select定义了一个id=left]

第三步:将获取到的option添加到右侧的下拉列表中去。(append方法的使用)

3.代码实现

<script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>

<script>

$(function(){

/*1.选中单击去右边*/

$("#selectOneToRight").click(function(){

$("#left option:selected").appendTo($("#right"));

});

/*2.单击全部去右边*/

$("#selectAllToRight").click(function(){

$("#left option").appendTo($("#right"));

});

/*3.选中双击去右边*/

$("#left option").dblclick(function(){

$("#left option:selected").appendTo($("#right"));

});

});

</script>

六、使用JQ完成表单校验

1.需求分析

使用插件进行校验。

2.技术分析

这里使用validation插件完成对表单数据的校验

一款优秀的表单验证插件——validation插件

特点:

l  内置验证规则:拥有必填、数字、email、url和信用卡号码等19类内置验证规则

l  自定义验证规则:可以很方便的自定义验证规则

l  简单强大的验证信息提示:默认了验证信息提示,并提供自定义覆盖默认提示信息的功能

l  实时验证:可以通过keyup或bulr事件触发验证,而不仅仅在表单提交的时候验证。

下载:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

快速入门:

第一步:引入jquery库和validation插件

案例:

<script type="text/javascript" src="../../js/jquery-1.11.0.min.js" ></script>

<script type="text/javascript" src="../../js/jquery.validate.min.js" ></script>

<script type="text/javascript" src="../../js/messages_zh.js" ></script>

<script>

$(function(){

$("#registForm").validate({

rules:{

user:{

required:true,

minlength:2

},

password:{

required:true,

digits:true,

minlength:6

},

repassword:{

required:true,

digits:true,

minlength:6,

equalTo:"[name='password']"

},

email:{

required:true,

email:true

},

username:{

required:true,

minlength:2

},

sex:{

required:true

}

},

messages:{

user:{

required:"用户名不能为空!",

minlength:"用户名不得少于2个字符!"

},

password:{

required:"密码不能为空!",

digits:"密码必须是数字!",

minlength:"密码长度不得低于6位!"

},

repassword:{

required:"确认密码不能为空!",

digits:"密码必须是数字!",

minlength:"密码长度不得低于6位!",

equalTo:"两次密码不一致!"

},

email:{

required:"邮箱不能为空!",

email:"邮箱格式不正确!"

},

username:{

required:"姓名不能为空!",

minlength:"姓名不得少于2个字符!"

},

sex:{

required:"性别必须勾选!"

}

},

errorElement: "label", //用来创建错误提示信息标签

success: function(label) { //验证成功后的执行的回调函数

//label指向上面那个错误提示信息标签label

label.text(" ") //清空错误提示消息

.addClass("success"); //加上自定义的success类

}

});

})

</script>

【JAVAWEB学习笔记】06_jQuery基础的更多相关文章

  1. JavaWeb学习笔记——jsp基础语法

    1.JSP注释 显式注释 <!-- 注释内容 --> 隐式注释,隐式注释在客户端无法看见 // /* */ <% 注释内容 %> 2.Scriptlet(小脚本程序) 所有嵌入 ...

  2. JavaWeb学习笔记——JavaEE基础知识

  3. javaweb学习笔记整理补课

    javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...

  4. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  5. bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111

    基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...

  6. JavaWeb学习笔记总结 目录篇

    JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...

  7. Django学习笔记(基础篇)

    Django学习笔记(基础篇):http://www.cnblogs.com/wupeiqi/articles/5237704.html

  8. C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

    一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...

  9. C#学习笔记(基础知识回顾)之值传递和引用传递

    一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...

  10. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

随机推荐

  1. jquery练习之瀑布流

    最近有空简单学习了下瀑布流,写完后想和大家一起分享下,但我知道我的代码有很多缺陷不足,希望多多包涵.(纯属兴趣非专业学习人士) 众所周知,瀑布流大概分为2种,一种是浮动式的瀑布流,一种是定位式的瀑布流 ...

  2. 【转】PV3D的小练习~太阳系八大行星

    转自:http://hi.baidu.com/boycy/item/70d1ba53bc8c3a958c12eddf http://www.cnblogs.com/flash3d/archive/20 ...

  3. NPM(Node.js) 使用介绍

    前言:express 推出了4.X,自己尝试了一下,出现了各种问题.结果查看了各种文档和问题,现在在这个给大家分享下4.X版本的安装. NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具, ...

  4. wampserver安装错误 应用程序无法正常启动0xc000007b解决方法

    在重装系统之后发现以前安装的wampserver启动会出现错误提示"应用程序无法正常启动0xc000007b解决方法",重新安装也是一样的错误.上网找了相关信息后发现,并不是只有本 ...

  5. Java事物基础总结

    1.什么是事物? 事物是逻辑上的的一种操作,这个操作过程中的每一个元素要么全部成功,要么全部失败.例如,银行转账过程视为一个事物,转出过程和转入过程要求全部成功或全部失败,通过提交事物或者回滚事物实现 ...

  6. javaScript 基础学习笔记

    边看视频和书记得有点杂. 1.插入JS标签 一种是在文档中插入<script></script>标签.另一种是把javaScript代码放在.js文件中.放在head中如. & ...

  7. 深入tornado中的IOStream

    IOStream对tornado的高效起了很大的作用,他封装了socket的非阻塞IO的读写操作.大体上可以这么说,当连接建立后,服务端与客户端的请求响应都是基于IOStream的,也就是说:IOSt ...

  8. appium+python做移动端自动化测试

      1 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile Web)应用UI自动化测试的相关自动化测试人员.开发人员等提供 ...

  9. Js插件开发

    简易JS插件开发,本文效果是一个简单的弹出层,意在记录插件的封装Demo. 完整源码压缩包:demo.rar 效果图(如下): 插件脚本: /** * 节点配置属性方式配置参数:专业的做法是配置到,每 ...

  10. MySQL执行计划总结

    背景 在工作过程中,最近时常对慢查询进行调优.对于MySQL的SQL语句调优,MySQL本身提供了强大的explain关键字用于查询分析执行计划. 本文对explain执行计划进行分析与整理,文中的内 ...