博客列表 >jQuery元素选择与属性选择,表单简单验证练习 - 20191222

jQuery元素选择与属性选择,表单简单验证练习 - 20191222

MArtian
MArtian原创
2019年12月22日 18:04:591413浏览

表单验证部分

  1. <div><label for="user">用户名</label><input id="user" name="user" type="text"></div>
  2. <div><label for="pwd">密码</label><input id="pwd" name="pwd" type="password"></div>
  3. <div><label for="rpwd">重复密码</label><input id="rpwd" name="rpwd" type="password"></div>
  4. <div><label for="male">性别</label><input id="male" type="radio" name="gender" value="male"><input id="female" type="radio" name="gender" value="female"></div>
  5. <div><label for="male">籍贯</label><select name="province" id="province">
  6. <option value="" selected>请选择城市</option>
  7. <option value="辽宁">辽宁</option>
  8. <option value="北京">北京</option>
  9. <option value="浙江">浙江</option>
  10. <option value="江苏">江苏</option>
  11. </select></div>
  12. <div><label for="status">用户状态</label><input type="checkbox" id="status" name="status" value="1">禁用</div>
  13. <div><button type="button" onclick="check()">提交</button></div>
  1. function check(){
  2. var user=$('form #user').val(),
  3. pwd=$('form #pwd').val(),
  4. rpwd=$('form #rpwd').val(),
  5. gender=$('form input[name="gender"]:checked').val(),
  6. province=$('form select[name="province"] option:selected').val(),
  7. status=$('form input[name="status"]:checked').val();
  8. if(user==''){
  9. alert('用户名不能为空');
  10. return;
  11. }
  12. if(pwd==''){
  13. alert('密码不能为空');
  14. return;
  15. }
  16. if(pwd!=rpwd){
  17. alert('两次密码不一致');
  18. return;
  19. }
  20. if(gender==undefined){
  21. alert('请选择性别');
  22. return;
  23. }
  24. if(province==''){
  25. alert('请选择城市');
  26. return;
  27. }
  28. }

元素选择部分(根据位置选择)

  1. function eqSelector() {
  2. //选中第二个div元素
  3. var v = $('form div:eq(1)');
  4. console.log(v);
  5. }
  6. function first() {
  7. //选中第一个div元素
  8. var v = $('form div:first');
  9. console.log(v);
  10. }
  11. function last() {
  12. //选中最后一个div元素
  13. var v = $('form div:last');
  14. console.log(v);
  15. }
  16. function gtSelect() {
  17. //选中位置序列大于2的所有元素
  18. var v = $('form div:gt(2)');
  19. console.log(v);
  20. }
  21. function ltSelect() {
  22. //选中位置序列小于3的所有元素
  23. var v = $('form div:lt(3)');
  24. console.log(v);
  25. }

元素选择部分(根据属性选择)

  1. <div class="attr">
  2. <div class="a b c d eee" name="abc" tag="myletter" hang="zz-cn-cn" news="Boxzz"></div>
  3. <div class="a b c d" name="abc1" tag="i-letter" hang="cn" news="box"></div>
  4. <div class="a b c" name="abc azz" tag="Thisletter" hang="cn-zz" news="box-z11"></div>
  5. <div name="zz1" tag="myLetter" hang="cnglish" news="b-box"></div>
  6. </div>
  1. function commonSelect() {
  2. //选中包含eee样式的div,该方法用于一个元素含有多个样式时使用
  3. var v = $('form div[class*="eee"] ');
  4. console.log(v);
  5. }
  6. function includeAttr(){
  7. //选中包含abc属性的元素,包含"abc",是独立名称,不能匹配类似 "abc1,abc222"
  8. var v = $('div.attr div[name~="abc"]');
  9. console.log(v);
  10. }
  11. function commonAttr(){
  12. //选中名称中包含"abc"的元素,"abc11","abcd","abcd11223"都是可以匹配的
  13. var v = $('div.attr div[name*="abc"]');
  14. console.log(v);
  15. }
  16. function endAttr(){
  17. //匹配以letter结尾的属性,该比较区分大小写,"Letter"不会被匹配
  18. var v = $('div.attr div[tag$="letter"]');
  19. console.log(v);
  20. }
  21. function startAttr(){
  22. //匹配以news开头的属性,该比较区分大小写,"Box"不会被匹配
  23. var v = $('div.attr div[news^="box"]');
  24. console.log(v);
  25. }
  26. function startLinkAttr(){
  27. //匹配以"cn"或"cn-"开头的属性名称,"cnabc","zz-cn-cn",都不会被匹配
  28. var v = $('div.attr div[hang|="cn"]');
  29. console.log(v);
  30. }
  31. function notAttr(){
  32. //匹配不包含"abc"的元素,"abc1","abczz"都可以匹配
  33. var v = $('div.attr div[name!="abc"]');
  34. console.log(v);
  35. }

总结

  1. 表单验证的时候,如果要判断 SELECT 标签是否选中,首先要给 SELECT 设置默认选择的 OPTION 并设置 VALUE 属性为空,这样获取 :selected 属性值的时候可以做判断如果值为空那么该选项未有任何值选中。
  2. 关于属性选择,有两类,一种是判断字符是否包含,一种是判断是否包含该名称,区别是 abc1z11abc,其中~=abc选择不会匹配abc1z11,只会匹配 abc,如果要匹配 abc1z11 应使用 *= 方法。
  3. ^= 是判断是否有匹配字符串开头,$= 是判断是否有匹配字符结尾,两者都区分大小写。
  4. |= 是判断是否有字符串开头后面接 - 符号,或单独字符串开头,例:en en- 都会被匹配。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议