经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery » 查看文章
jQuery——复选框操作
来源:cnblogs  作者:用脑袋行走的人  时间:2019/9/25 9:23:03  对本文有异议

学习jQuer对表单、表格操作的过程中,按照书上的例子发现一个问题:

  1. 1 <!DOCTYPE html>
  2. 2 <html>
  3. 3 <head>
  4. 4 <title>复选框应用</title>
  5. 5 <style type="text/css">
  6. 6 form{
  7. 7 border:1px solid #ccc;
  8. 8 width:300px;
  9. 9 padding:10px;
  10. 10 margin:auto;
  11. 11 }
  12. 12 </style>
  13. 13 <script type="text/javascript" src="../jquery-3.4.1.js"></script>
  14. 14 <script type="text/javascript">
  15. 15 $(function(){
  16. 16 //书上如此添加按钮事件处理——问题:当单击触发了反选事件之后,再次点击“全选”、“全不选”按钮不起作用,需要按照如下修改,即使用each()方法,才可以;或者将attr()方法修改为prop()方法也可实现预期
  17. 17 // $("#CheckedAll").click(function(){
  18. 18 // $("[name=items]:checkbox").attr("checked",true);//或者将attr()方法修改为prop()方法也可实现预期
  19. 19 // });
  20. 20 // $("#CheckedNo").click(function(){
  21. 21 // $("[name=items]:checkbox").attr("checked",false);//或者将attr()方法修改为prop()方法也可实现预期
  22. 22 // });
  23. 23
  24. 24 $("#CheckedAll").click(function(){
  25. 25 $("[name=items]:checkbox").each(function(){
  26. 26 this.checked=true;
  27. 27 });
  28. 28 });
  29. 29 $("#CheckedNo").click(function(){
  30. 30 $("[name=items]:checkbox").each(function(){
  31. 31 this.checked=false;
  32. 32 });
  33. 33 });
  34. 34 $("#CheckedRev").click(function(){
  35. 35 $("[name=items]:checkbox").each(function(){
  36. 36 // $(this).attr("checked",!$(this).attr("checked"));
  37. 37 this.checked=!this.checked;
  38. 38 });
  39. 39 });
  40. 40 $("#send").click(function(){
  41. 41 var str="你选中的是:\r\n";
  42. 42 $("[name=items]:checkbox").each(function(){
  43. 43 if(this.checked)
  44. 44 str+=$(this).val()+"\r\n";
  45. 45 });
  46. 46 alert(str);
  47. 47 });
  48. 48 })
  49. 49 </script>
  50. 50 </head>
  51. 51 <body>
  52. 52 <form>
  53. 53 你爱好的运动是?<br/>
  54. 54 <input type="checkbox" name="items" value="足球"/>足球
  55. 55 <input type="checkbox" name="items" value="篮球"/>篮球
  56. 56 <input type="checkbox" name="items" value="羽毛球"/>羽毛球
  57. 57 <input type="checkbox" name="items" value="乒乓球"/>乒乓球<br/>
  58. 58 <input type="button" id="CheckedAll" value="全选"/>
  59. 59 <input type="button" id="CheckedNo" value="全不选"/>
  60. 60 <input type="button" id="CheckedRev" value="反选"/>
  61. 61 <input type="button" id="send" value="提交"/>
  62. 62 </form>
  63. 63 </body>
  64. 64 </html>

以下代码同样使用prop()函数,使用attr()方法也不能实现预期

  1. 1 <!DOCTYPE html>
  2. 2 <html>
  3. 3 <head>
  4. 4 <title>复选框应用</title>
  5. 5 <style type="text/css">
  6. 6 form{
  7. 7 border:1px solid #ccc;
  8. 8 width:500px;
  9. 9 padding:10px;
  10. 10 margin:auto;
  11. 11 font-size:20px;
  12. 12 }
  13. 13 </style>
  14. 14 <script type="text/javascript" src="../jquery-3.4.1.js"></script>
  15. 15 <script type="text/javascript">
  16. 16 $(function(){
  17. 17 $("#CheckedAll").click(function(){
  18. 18 $("[name=items]:checkbox").prop("checked",this.checked);
  19. 19 });
  20. 20
  21. 21 $("[name=items]:checkbox").click(function(){
  22. 22 var flag=true;
  23. 23 $("[name=items]:checkbox").each(function(){
  24. 24 if(!this.checked)
  25. 25 flag=false;
  26. 26 });
  27. 27 // alert($("#CheckedAll")[0]);
  28. 28 // alert($("#CheckedAll")[0].getAttribute("checked"));
  29. 29 //此处使用attract()方法,在IE中和在chrome中均不能实现预期,需要修改为prop()方法
  30. 30 // $("#CheckedAll").attr("checked",flag);
  31. 31 $("#CheckedAll").prop("checked",flag);
  32. 32 // alert($("#CheckedAll").prop("checked"));//使用attr()时,返回undifined
  33. 33 });
  34. 34
  35. 35 $("#CheckedRev").click(function(){
  36. 36 $("[name=items]:checkbox").each(function(){
  37. 37 // $(this).prop("checked",!$(this).attr("checked"));
  38. 38 this.checked=!this.checked;
  39. 39 });
  40. 40 });
  41. 41 $("#send").click(function(){
  42. 42 var str="你选中的是:\r\n";
  43. 43 $("[name=items]:checkbox").each(function(){
  44. 44 if(this.checked)
  45. 45 str+=$(this).val()+"\r\n";
  46. 46 });
  47. 47 alert(str);
  48. 48 });
  49. 49 })
  50. 50 </script>
  51. 51 </head>
  52. 52 <body>
  53. 53 <form>
  54. 54 你爱好的运动是?<input type="checkbox" id="CheckedAll" value="全选/全不选" />全选/全不选<br/>
  55. 55 <input type="checkbox" name="items" value="足球"/>足球
  56. 56 <input type="checkbox" name="items" value="篮球"/>篮球
  57. 57 <input type="checkbox" name="items" value="羽毛球"/>羽毛球
  58. 58 <input type="checkbox" name="items" value="乒乓球"/>乒乓球<br/>
  59. 59 <input type="button" id="CheckedRev" value="反选"/>
  60. 60 <input type="button" id="send" value="提交"/>
  61. 61 </form>
  62. 62 </body>
  63. 63 </html>

 

原文链接:http://www.cnblogs.com/planetwithpig/p/11578801.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号