02.全选练习三.html 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <script>
  9. window.onload = function () {
  10. //获取四个多选框
  11. var items = document.getElementsByName("items");
  12. //获取全选/全不选的多选框
  13. var checkedAllBox = document.getElementById("checkedAllBox");
  14. /**
  15. * 全选按钮
  16. * -点击按钮以后,四个多选框全都被选中
  17. */
  18. // 1.#checkedAllBtn
  19. //为id为checkedAllBtn的按钮绑定一个单击相应函数
  20. var checkedAllBtn = document.getElementById("checkedAllBtn");
  21. checkedAllBtn.onclick = function () {
  22. // alert("点了全选");
  23. //获取四个多选框items
  24. var items = document.getElementsByName("items");
  25. // alert(items.length);
  26. //遍历items
  27. for (var i = 0; i < items.length; i++) {
  28. //设置四个多选框变成选中状态
  29. //通过多选框的checked属性可以来获取或设置多选框的选中状态
  30. // alert(items[i].checked);//选中了返回true,没选中返回false
  31. items[i].checked = true;
  32. };
  33. //将全选/全不选设置为选中
  34. checkedAllBox.checked = true;
  35. };
  36. // 2.#checkedNoBtn
  37. /*
  38. 全不选按钮
  39. -点击按钮以后,四个多选框都变成没选中的状态
  40. */
  41. //我做的
  42. //为id为checkedNoBtn的按钮绑定一个单击相应函数
  43. // var checkedNoBtn = document.getElementById("checkedNoBtn");
  44. // checkedNoBtn.onclick = function () {
  45. // // alert("点了全不选");
  46. // //获取四个多选框
  47. // var items = document.getElementsByName("items");
  48. // // alert(items.length);
  49. // //遍历items
  50. // for (var i = 0; i < items.length; i++) {
  51. // // 设置四个选框为未选中状态
  52. // items[i].checked = false;
  53. // };
  54. // };
  55. //老师讲的
  56. //为id为checkedNoBtn的按钮绑定一个单击相应函数
  57. var checkedNoBtn = document.getElementById("checkedNoBtn");
  58. checkedNoBtn.onclick = function () {
  59. for (var i = 0; i < items.length; i++) {
  60. //将四个多选框设置为没选中的状态
  61. items[i].checked = false;
  62. };
  63. //将全选/全不选设置为选中
  64. checkedAllBox.checked = false;
  65. };
  66. // 3.#checkedRevBtn
  67. /*
  68. 反选按钮
  69. -点击按钮以后,选中的变成没选中,没选中的变成选中
  70. */
  71. //我做的
  72. //为id为checkedRevBtn的按钮绑定一个单击相应函数
  73. // var checkedRevBtn = document.getElementById("checkedRevBtn");
  74. // checkedRevBtn.onclick = function () {
  75. // // alert("按钮被点击了");
  76. // //获取四个选框
  77. // var items = document.getElementsByName("items");
  78. // // alert(items.length);
  79. // //遍历选框
  80. // for (var i = 0; i < items.length; i++) {
  81. // // alert(items[i].checked);
  82. // //判断复选框状态
  83. // if (items[i].checked == true) {
  84. // items[i].checked = false;
  85. // } else {
  86. // items[i].checked = true
  87. // };
  88. // };
  89. // };
  90. //老师讲的
  91. //为id为checkedRevBtn的按钮绑定一个单击相应函数
  92. var checkedRevBtn = document.getElementById("checkedRevBtn");
  93. checkedRevBtn.onclick = function () {
  94. //将checkedAllBox设置为选中状态(默认为选中状态
  95. checkedAllBox.checked = true;
  96. for (var i = 0; i < items.length; i++) {
  97. //判断多选框的状态
  98. // if (items[i].checked) {
  99. // //证明多选框已选中,则设置为没选中状态
  100. // items[i].checked = false;
  101. // } else {
  102. // //证明多选框没选中,则设置为选中状态
  103. // items[i].checked = true;
  104. // };
  105. items[i].checked = !items[i].checked;
  106. //判断四个多选框是否全选
  107. //只要有一个没选中就不是全选
  108. if (!items[i].checked) {
  109. //一旦进入判断,则证明不是全选
  110. //将checkedAllBox设置为没选中状态
  111. checkedAllBox.checked = false;
  112. //一旦进入判断,则已经得出结果,不用再继续执行循环
  113. }
  114. };
  115. //在反选时也需要判断四个多选框是否全都选中
  116. };
  117. // 4.#sendBtn
  118. /*
  119. 提交按钮
  120. -点击按钮以后,将所有选中的多选框的value属性值弹出
  121. */
  122. //我做的
  123. //为id为sendBtn的按钮绑定一个单击相应函数
  124. // var sendBtn = document.getElementById("sendBtn");
  125. // sendBtn.onclick = function () {
  126. // // alert("点击了提交");
  127. // //获取选框
  128. // var items = document.getElementsByName("items");
  129. // // alert(items.length);
  130. // //遍历复选框
  131. // for (var i = 0; i < items.length; i++) {
  132. // // alert(items[i].checked);
  133. // // alert(items[i].value);
  134. // //判断复选框状态
  135. // if (items[i].checked == true) {
  136. // alert(items[i].value);
  137. // };
  138. // };
  139. // };
  140. //老师讲的
  141. //为id为sendBtn的按钮绑定一个单击相应函数
  142. var sendBtn = document.getElementById("sendBtn");
  143. sendBtn.onclick = function () {
  144. //遍历items
  145. for (var i = 0; i < items.length; i++) {
  146. //判断多选框是否选中
  147. if (items[i].checked) {
  148. alert(items[i].value);
  149. };
  150. };
  151. };
  152. // 5.#checkedAllBox
  153. /*
  154. 全选/全不选多选框
  155. -当它选中时,其余的也选中,当它取消时,其余的也取消\
  156. 在事件的响应函数中,响应函数是给谁绑定的,this就是谁
  157. */
  158. //为id为sendBtn的按钮绑定一个单击相应函数
  159. var checkedAllBox = document.getElementById("checkedAllBox");
  160. checkedAllBox.onclick = function () {
  161. // alert(this === checkedAllBox);
  162. //设置多选框的选中状态
  163. for (var i = 0; i < items.length; i++) {
  164. // items[i].checked = checkedAllBox.checked;
  165. items[i].checked = this.checked;
  166. };
  167. };
  168. // 6.items
  169. /*
  170. 如果四个多选框全部都选中,则checkedAllBox也应该选中
  171. 如果四个多选框没全被选中,则checkedAllBox也不应该选中
  172. */
  173. //为四个多选框分别绑定点击响应函数
  174. for (var i = 0; i < items.length; i++) {
  175. items[i].onclick = function () {
  176. //将checkedAllBox设置为选中状态(默认为选中状态
  177. checkedAllBox.checked = true;
  178. // alert("hello");
  179. for (var j = 0; j < items.length; j++) {
  180. //判断四个多选框是否全选
  181. //只要有一个没选中就不是全选
  182. if (!items[j].checked) {
  183. //一旦进入判断,则证明不是全选
  184. //将checkedAllBox设置为没选中状态
  185. checkedAllBox.checked = false;
  186. //一旦进入判断,则已经得出结果,不用再继续执行循环
  187. break;
  188. }
  189. };
  190. };
  191. };
  192. }
  193. </script>
  194. </head>
  195. <body>
  196. <form class="" report-submit="false" bindsubmit="" bindreset="">
  197. 你爱好的运动是?<input type="checkbox" id="checkedAllBox" />全选/全不选
  198. <br />
  199. <input type="checkbox" name="items" value="足球" />足球
  200. <input type="checkbox" name="items" value="篮球" />篮球
  201. <input type="checkbox" name="items" value="羽毛球" />羽毛球
  202. <input type="checkbox" name="items" value="乒乓球" />乒乓球
  203. <br />
  204. <input type="button" id="checkedAllBtn" value="全 选" />
  205. <input type="button" id="checkedNoBtn" value="全不选" />
  206. <input type="button" id="checkedRevBtn" value="反 选" />
  207. <input type="button" id="sendBtn" value="提 交" />
  208. </form>
  209. </body>
  210. </html>