5.1 《锋利的jQuery》jQuery对表单的操作
tip1:
注意使用<label>的for标签,对应input的id。(for 属性规定 label 与哪个表单元素绑定。)
tip2:
注意:jquery从1.6版本开始,哪些属性应该用attr()访问,哪些应该用prop()访问。
第一个原则:只添加属性名称该属性就会生效应该使用prop();
第二个原则:只存在true/false的属性应该使用prop();
按照官方说明,如果是设置disabled和checked这些属性,应使用prop()方法,而不是attr()方法。
1、获取焦点和失去焦点改变样式
input:focus,textarea:focus{
border: 1px solid #ff3300;
background-color: #fcc;
}
/*IE6并不支持除超链接元素之外的:hover伪类选择符。*/
so,
$(":input").focus(function(){
$(this).addClass("focus");
}).blur(function(){
$(this).removeClass("focus");
});
// :input表示选择表单中的input,select,textarea,button元素,input仅仅选择input元素。
2、改变文本框/滚动条高度
var $comment=$("#commnet");
$(".bigger").click(function(){
if($comment.is(":animated")){
// if($comment.height()<500){
// $comment.animate({height:"+=50"},400);
// } //高度变大
$comment.animate({scrollTop:"-=50"},400); //向上滚动
}
});
$(".smaller").click(function(){
if($comment.is(":animated")){
// if($comment.height()>50){
// $comment.animate({height:"-=50"},400);
// } //高度变小
$comment.animate({scrollTop:"+=50"},400); //向下滚动
}
})
3、复选框应用
<form action="#" method="post" id="regForm">
你爱好的运动是?
<input type="checkbox" id="CheckAll">全选/全不选
<br/>
<input type="checkbox" name="items" value="足球"> 足球
<input type="checkbox" name="items" value="篮球"> 篮球
<input type="checkbox" name="items" value="羽毛球"> 羽毛球
<input type="checkbox" name="items" value="乒乓球"> 乒乓球<br/>
<input type="button" id="CheckRev" value="反选">
<input type="button" id="send" value="提交">
</form>
$(function () {
// 全选/全不选
$("#CheckAll").click(function () {
$("[name=items]:checkbox").prop("checked", this.checked);
});
// 反选
$("#CheckRev").click(function () {
$("[name=items]:checkbox").each(function () {
this.checked = !this.checked;
})
});
// 提交
$("#send").click(function () {
var str = "你选择中的是:";
$("[name=items]:checkbox:checked").each(function () {
str += $(this).val() + "/";
})
alert(str);
})
// 跟全选联动
$("[name=items]:checkbox,#CheckRev").click(function(){ //#CheckRev添加了反选的联动
var flag=true;
$("[name=items]:checkbox").each(function(){
if(!this.checked){
flag=false;
}
});
$("#CheckAll").prop("checked",flag);
})
});
4、下拉框应用
<div class="fz">
<div class="content l">
<select multiple id="select1" style="width: 100px; height: 160px;">
<option value="1">选项1</option>
<option value="2">选项2</option>
<option value="3">选项3</option>
<option value="4">选项4</option>
<option value="5">选项5</option>
<option value="6">选项6</option>
<option value="7">选项7</option>
<option value="8">选项8</option>
</select>
<div>
<span id="add">选中添加到右边>></span><br/>
<span id="add_all">全部添加到右边>></span>
</div>
</div>
<div class="content l">
<select multiple id="select2" style="width: 100px; height: 160px;"></select>
<div>
<span id="remove"><<选中删除到左边</span><br/>
<span id="remove_all"><<全部删除到左边</span>
</div>
</div>
</div>
$(function () {
// 选中添加到右边
$("#add").click(function(){
var $option=$("#select1 option:selected");
// var $remove=$option.remove();
// $remove.appendTo("#select2");
// 删除和追加可以用appendTo()方法直接完成
$option.appendTo("#select2");
});
// 全部添加到右边
$("#add_all").click(function(){
var $option=$("#select1 option");
$option.appendTo("#select2");
});
// 双击添加到右边
$("#select1").dblclick(function(){
var $option=$("option:selected",this);
$option.appendTo("#select2");
})
});

5、表单验证:
<form method="post" action="">
<div class="int">
<label for="username">用户名:</label>
<input type="text" id="username" class="required">
</div>
<div class="int">
<label for="email">邮箱:</label>
<input type="text" id="email" class="required">
</div>
<div class="int">
<label for="personinfo">个人资料:</label>
<input type="text" id="personinfo">
</div>
<div class="sub">
<input type="submit" value="提交" id="send"> <input type="reset" id="res">
</div>
</form>
$(function () {
$("form :input.required").each(function(){
var $required=$("<strong class='red'>*</strong>");
$(this).parent().append($required);
});
$("form :input").blur(function(){
$parent=$(this).parent();
$parent.find(".formtips").remove();
// 验证用户名
if($(this).is("#username")){
if(this.value==""||this.value.length<6){
var errorMsg="请输入至少6位数的用户名";
$parent.append("<span class='formtips onError'>"+errorMsg+"</span>");
}else{
var okMsg="输入正确";
$parent.append("<span class='formtips onSuccess'>"+okMsg+"</span>");
}
}
// 验证邮箱
if($(this).is("#email")){
if(this.value==""||this.value!=""&&!/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value)){
var errorMsg="请输入正确的email";
$parent.append("<span class='formtips onError'>"+errorMsg+"</span>");
}else{
var okMsg="输入正确";
$parent.append("<span class='formtips onSuccess'>"+okMsg+"</span>");
}
}
}).keyup(function(){ //新增,keyup()用户每次松开按键的时候触发
$(this).triggerHandler("blur"); //trigger()不仅会触发为元素绑定的blur事件,也会触发浏览器默认的blur事件,
// 即不能将光标定位到文本框上。而triggerHander("blur")只会触发为元素绑定的blur,而不触发浏览器默认的blur事件
}).focus(function(){ //新增,focus()元素得到焦点的时候触发
$(this).triggerHandler("blur");
});
// 表单提交
$("#send").click(function(){
$("form .required:input").trigger("blur");
var numError=$("form .onError").length;
if(numError){
return false;
}else{
alert("注册成功!");
}
})
});
5.1 《锋利的jQuery》jQuery对表单的操作的更多相关文章
- jQuery对表单的操作
表单应用 一个表单有3个基本组成部分: 表单标签:包含处理表单数据所用的服务器端程序URL以及数据提交到服务器的方法 表单域:包含文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上 ...
- JavaScript学习笔记——对表单的操作
javascript-对表单的操作实例讲解 <form name="myform" id="form1" action="" meth ...
- HTML 学习笔记 JQuery(表单,表格 操作)
表单应用 一个表单有3个基本组成部分 (1)表单标签:包含处理表单数据所用的服务器端程序URL 以及数据提交到服务器的方法 (2)表单域:包含文本框 密码框 隐藏框 多行文本框 复选框 单选框 下拉选 ...
- JS对表单的操作
JS对表单中的style的操作,包括复选框技术 废话不多说直接上文件代码!!! 功能:全选\反选,鼠标监测变颜色 <html> <head> <meta charset= ...
- jQuery(6)——jQuery对表单、表格的操作及更多应用
jQuery对表单.表格的操作及更多应用 [表单应用] 一个表单有表单标签.表单域及表单按钮三个基本部分. 单行文本框应用:获取和失去焦点改变样式. 也可以用CSS中的伪类选择符来实现,但是IE6并不 ...
- 【锋利的jQuery】表单验证插件踩坑
和前几篇博文提到的一样,由于版本原因,[锋利的jQuery]表单验证插件部分又出现照着敲不出效果的情况. 书中的使用方法: 1. 引入jquery源文件, 2. 引入表单验证插件js文件, 3. 在f ...
- 《锋利的JQuery》读书要点笔记4——表格表单的操作
第五章 jQuery对表单,表格的操作以及更多应用 这章主要以一些具体案例讲解了jQuery对表单,表格的常用操作,以及一些常见的jQuery应用,用到的都是上几章说的东西.下面就以具体的案例来展开. ...
- jQuery 对表单、表格的操作及更多应用-简略笔记
[jQuery 对表单.表格的操作及更多应用] jquery对表单及表格的操作是实际应用中相当广泛. 对于表单的操作,可以实现 (1)获取和失去焦点改变样式: (2)在多行文本框中可以实现网站评论框的 ...
- js进阶 14-7 jquery的ajax部分为什么需要对表单进行序列化
js进阶 14-7 jquery的ajax部分为什么需要对表单进行序列化 一.总结 一句话总结:如果用ajax传递表单的数据,如果不进行表单的序列化,要一个参数一个参数的写,太麻烦,序列化的话,一句代 ...
随机推荐
- extern static const abstract virtual
extern static const abstract virtual const const.常量,初始化过后值不能再变化的变量.
- foreach_break 面试记录
版权所有@foreach_break] [博客地址 http://www.cnblogs.com/foreach-break] 可以转载,但必须注明出处并保持博客超链接 背景 自从2013年离开北京后 ...
- linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
这3个命令的用途都是启动网络接口,不过,ifup与ifdown仅就 /etc/sysconfig/network- scripts内的ifcfg-ethx(x为数字)进行启动或关闭的操作,并不能直接修 ...
- winform中tabControl的标题隐藏
方法一: Apperarance 属性:Faltbuttons SizeMode属性:Fixed 各个TabPage的Text :空 ItemSize : Width=0;Height=1; //He ...
- C++课程资源下载问题
[来信] 贺老师,您好,我是江西某高校软件学院的一名在校学生.看了您在csdn上公布的博文和视频,我获益良多.不得不承认,之前的大学时光我是荒废了,立即就要大三了,我主攻的是C++方面.因此我悔过自新 ...
- 版本号控制软件:TortoiseSVN高速上手
百度百科对于SVN的一点解释: TortoiseSVN是Subversion版本号控制系统的一个免费开源client,能够超越时间的管理文件和文件夹.文件保存在中央版本号库,除了能记住文件和文件夹的每 ...
- openssl之BIO系列之9---BIO对的创建和应用
BIO对的创建和应用 ---依据openssl doc/crypto/bio/bio_new_bio_pair.pod翻译和自己的理解写成 (作者:DragonKing Mail:wzhah@263. ...
- 解释一下Windows dos中的符号
容许我放一段Windows的批处理: sc <server> [command] [service name] <option1> <option2>... < ...
- Android使用OKHttp3实现下载(断点续传、显示运行进度)
OKHttp3是现在很流行的Android网络请求框架,那么怎样利用Android实现断点续传呢,今天写了个Demo尝试了一下,感觉还是有点意思 准备阶段 我们会用到OKHttp3来做网络请求,使用R ...
- MFC的运行机理分析+ASC码问题
Win32程序是从WinMain开始执行的,但是MFC把WinMain给封装了,不会出现在你的代码里面,他已经编译到mfc80.dll了(VS2005)了. 在MFC中的执行顺序是这样的,首先Wind ...