热门IT资讯网

综合jQuery在表单中的应用

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,
  1. >
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta http-equiv="refresh" content="600;url=单行文本框.html" />
  6. <meta name="description" content="jquery表单应用中的单行文本框应用" />
  7. <meta name="keywords" content="jQuery,表单,单行文本框,多行文本框,滚动条的高度,复选框的应用,下拉框的应用,表单验证" />
  8. <title>表单应用title>
  9. <style type="text/css">
  10. /*input:hover,textarea:hover{border:1px solid #f00; pink;} IE6不支持这样的伪类,因此使用一下jquery来实现* /
  11. .focus{border:1px solid #f00; pink;} < /span>
  12. .msg{border:1px solid #666;}
  13. .bigger,.smaller,.up,.down{cursor:pointer;}
  14. #msg{width:auto; height:150px;}
  15. #select1,#select2{width:100px; height:200px; float:left;}
  16. .arrow span{display:block; height:50px; line-height:50px; cursor:pointer;}
  17. style>
  18. <script type="text/javascript" src="../jquery-1.7.2.min.js">script>
  19. <script type="text/javascript">
  20. $(function(){
  21. //单行文本框应用
  22. $("input:lt(2)").focus(function(){
  23. $(this).addClass("focus");
  24. }).blur(function(){
  25. $(this).removeClass("focus");
  26. })
  27. //多行文本框应用
  28. var $msg=$("#msg");
  29. $(".bigger").click(function(){
  30. if(!$msg.is(":animated")){
  31. if($msg.height()<500){
  32. $msg.animate({height:"+=50"},400);
  33. };
  34. }
  35. });
  36. $(".smaller").click(function(){
  37. if(!$msg.is(":animated")){
  38. if($msg.height()>50){
  39. $msg.animate({height:"-=50"},400);
  40. }
  41. }
  42. })
  43. //滚动条的高度
  44. $(".up").click(function(){
  45. if(!$msg.is(":animated")){
  46. $msg.animate({scrollTop:"-=10"},400);
  47. }
  48. });
  49. $(".down").click(function(){
  50. if(!$msg.is(":animated")){
  51. $msg.animate({scrollTop:"+=10"},400);
  52. }
  53. })
  54. //复选框的应用
  55. //全选
  56. $("#checkedAll").click(function(){
  57. $("[name=items]:checkbox:lt(4)").prop("checked",true);
  58. });
  59. //全不选
  60. $("#checkedNo").click(function(){
  61. $("[name=items]:checkbox:lt(4)").prop("checked",false);
  62. });
  63. //反选
  64. $("#checkedRev").click(function(){
  65. $("[name=items]:checkbox:lt(4)").each(function(){
  66. /*$(this).attr("checked",!$(this).attr("checked"));//jquery方法显得有点复杂,下面是js方法*/
  67. this.checked=!this.checked;
  68. })
  69. });
  70. //发送
  71. $("#send").click(function(){
  72. var str="你选中的是:\r\n";//\r\n是换行符
  73. $("[name=items]:checkbox:checked").each(function(){
  74. str+=$(this).val()+"\r\n";
  75. });
  76. alert(str);
  77. });
  78. //用复选框来做全选与全部选
  79. $("#selectedAll").click(function(){
  80. /*if(this.checked){
  81. $("[name=items]:checkbox:gt(3)").prop("checked",true);
  82. }else{
  83. $("[name=items]:checkbox:gt(3)").prop("checked",false);
  84. }*/
  85. //以上方法可以简写为:
  86. $("[name=items]:checkbox:gt(3)").prop("checked",this.checked);
  87. });
  88. //是按钮复选框和其他复选框联动起来
  89. $("[name=items]:checkbox:gt(3)").click(function(){
  90. /*var flag=true; //联动方法一:
  91. $("[name=items]:checkbox").each(function(){
  92. if(!this.checked){
  93. flag=false;
  94. }
  95. });
  96. $("#selectedAll").prop("checked",flag);*/
  97. //联动方法二:
  98. var $tmp=$("[name=items]:checkbox:gt(3)");//定义一个临时变量
  99. //使用filter()方法筛选出选中的复选框,并直接给selectedAll赋值
  100. $("#selectedAll").prop("checked",$tmp.length==$tmp.filter(":checked").length);
  101. //判断复选框的总数是否与选中的复选框数量相等
  102. });
  103. //下拉菜单的应用
  104. //左边到右边
  105. $("#add1").click(function(){
  106. /*var $options=$("#select1 option:selected");//获取到选中的相
  107. var $remove=$options.remove(); //删除下拉列表中选中的相
  108. $remove.appendTo("#select2"); //追加给右边的下拉列表*/
  109. //删除和追加这两个步骤可以由appendTo直接完成,以上方法可以写为:
  110. var $options=$("#select1 option:selected");
  111. $options.appendTo("#select2");
  112. });
  113. $("#add1_all").click(function(){
  114. var $options=$("#select1 option");//获取所有选项
  115. $options.appendTo("#select2");
  116. });
  117. $("#select1").dblclick(function(){//绑定双击事件
  118. var $options=$("option:selected",this);
  119. $options.appendTo("#select2");
  120. });
  121. //右边到左边
  122. $("#add2").click(function(){
  123. var $options=$("#select2 option:selected");
  124. $options.appendTo("#select1");
  125. });
  126. $("#add2_all").click(function(){
  127. var $options=$("#select2 option");
  128. $options.appendTo("#select1");
  129. });
  130. $("#select2").dblclick(function(){
  131. var $options=$("option:selected",this);
  132. $options.appendTo("#select1");
  133. });
  134. //表单验证
  135. $("input.required").each(function(){
  136. var $required=$("<strong class='high'>*strong>");
  137. $(this).parent().append($required);
  138. }).blur(function(){
  139. var $parent=$(this).parent();
  140. $parent.find(".formtips").remove();
  141. //验证用户名
  142. if($(this).is("#username")){
  143. if(this.style==""||this.value.length<6){
  144. var errorMsg="请输入至少6位的用户名";
  145. $parent.append("<span class='formtips onError'>"+errorMsg+"span>");
  146. }else{
  147. var okMsg="输入正确";
  148. $parent.append("<span class='formtips onSuccess'>"+okMsg+"span>");
  149. }
  150. };
  151. //验证邮箱
  152. if($(this).is("#email")){
  153. if(this.value==""||(this.value!=""&&!/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value))){
  154. var errorMsg="请输入正确的email地址";
  155. $parent.append("<span class='formtips onError'>"+errorMsg+"span>");
  156. }else{
  157. var okMsg="输入正确";
  158. $parent.append("<span class='formtips onSuccess'"+okMsg+"span>");
  159. };
  160. };
  161. });
  162. })
  163. script>
  164. head>
  165. <body>
  166. <form action="#" method="post" id="regForm">
  167. <fieldset>
  168. <legend>个人基本信息legend>
  169. <div id="">
  170. <label for="username">名称:label>
  171. <input type="text" id="name" />
  172. div>
  173. <div>
  174. <label for="pass">密码:label>
  175. <input type="password" id="pass" />
  176. div>
  177. <div class="msg">
  178. <div>
  179. <span class="bigger">放大span>
  180. <span class="smaller">缩小span>
  181. <span class="up">向上span>
  182. <span class="down">向下span>
  183. div>
  184. <label for="msg">详细信息:label>
  185. <textarea id="msg">多行文本框应用,多行文本框高度变化。多行文本框应用,多行文本框高度变化。多行文本框应用,多行文本框高度变化。多行文本框应用,多行文本框高度变化。多行文本框应用,多行文本框高度变化。 多行文本框应用,多行文本框高度变化。多行文本框应用,多行文本框高度变化。
  186. textarea>
  187. div>
  188. fieldset>
  189. <fieldset>
  190. <legend>你爱好的运动是?legend>
  191. <input type="checkbox" name="items" value="足球" />足球
  192. <input type="checkbox" name="items" value="篮球" />篮球
  193. <input type="checkbox" name="items" value="乒乓球" />乒乓球
  194. <input type="checkbox" name="items" value="羽毛球" />羽毛球<br />
  195. <input type="button" id="checkedAll" value="全 选" />
  196. <input type="button" id="checkedNo" value="全不选" />
  197. <input type="button" id="checkedRev" value="反 选" />
  198. <input type="button" id="send" value="提 交" />
  199. fieldset>
  200. <fieldset>
  201. <legend>你喜爱的水果是?legend>
  202. <input type="checkbox" name="items" value="苹果" />苹果
  203. <input type="checkbox" name="items" value="香蕉" />香蕉
  204. <input type="checkbox" name="items" value="葡萄" />葡萄
  205. <input type="checkbox" name="items" value="橘子" />橘子<br />
  206. <input type="checkbox" id="selectedAll" value="全选/全部选" />全选/全不选
  207. <input type="button" id="send2" value="提 交" />
  208. fieldset>
  209. <fieldset>
  210. <legend>下拉框的应用legend>
  211. <select multiple id="select1">
  212. <option>选项1option>
  213. <option>选项2option>
  214. <option>选项3option>
  215. <option>选项4option>
  216. <option>选项5option>
  217. <option>选项6option>
  218. <option>选项7option>
  219. <option>选项8option>
  220. select>
  221. <div class="arrow" style="float:left">
  222. <span id="add1">选中添加到右边>>span>
  223. <span id="add1_all">全部添加到右边>>span>
  224. <span id="add2"><<选中添加到左边span>
  225. <span id="add2_all"><<全部添加到左边span>
  226. div>
  227. <select multiple id="select2">
  228. select>
  229. fieldset>
  230. <fieldset>
  231. <legend>表单验证legend>
  232. <div class="int">
  233. <label for="username">用户名:label>
  234. <input type="text" id="username" class="required" />
  235. div>
  236. <div class="int">
  237. <label for="email">邮箱:label>
  238. <input type="text" id="email" class="required" />
  239. div>
  240. <div class="int">
  241. <label for="personinfo">个人资料:label>
  242. <input type="text" id="personinfo" />
  243. div>
  244. <div class="sub">
  245. <input type="submit" value="提交" id="send3" /><input type="reset" id="res" />
  246. div>
  247. fieldset>
  248. form>
  249. body>
  250. html>

注意:1、

标签是使表单相关元素分组;

2、标签是为

变浅定义标题用的;

3、

0