Vue实现单选、全选和反选

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue实现单选、全选和反选相关的知识,希望对你有一定的参考价值。

参考技术A 当多个checkbox通过 v-model 绑定到同一个数组时,每个checkbox被选中时,它的 value 会被添加到这个数组。

全选框通过 v-model 绑定到一个计算属性( checkAll ),这个属性必须实现了 getter 和 setter 方法,当model数组长度等于 fruits 长度,返回true,表示全选。改变checkbox的值时会触发 setter 方法,如果变为true,表示全选,如果变为false,表示全不选。

反选只关心checkbox值是否发生改变,并不关心值本身,所以没有为它设置v-model,而只是监听 change 事件

实现效果

对于checkbox和radio,如果不提供value, v-model 的值是true或false

如果提供value, v-model 的值是提供的value

jquery实现全选和反选功能

jQuery操作复选框的选中和不选中状态非常简单,使用attr()来设置"checked"属性的值,true未选中,false为未选中,在整个全选、反选过程中注意处理全选复选框的选中状态,以及获取选中选项的值。

  1. <ul id="list">
    1. <li><label><input type="checkbox" value="1"> 1.我是记录来的呢</label></li>
    2. <li><label><input type="checkbox" value="2"> 2.哈哈,真的太天真了</label></li>
    3. <li><label><input type="checkbox" value="3"> 3.爱上你是我的错吗?</label></li>
    4. <li><label><input type="checkbox" value="4"> 4.从开始你就不应用爱上我</label></li>
    5. <li><label><input type="checkbox" value="5"> 5.喜欢一个人好难</label></li>
    6. <li><label><input type="checkbox" value="6"> 6.你在那里呢</label></li>  
  2. </ul>
  3. <input type="checkbox" id="all">  
  4. <input type="button" value="全选" class="btn" id="selectAll">  
  5. <input type="button" value="全不选" class="btn" id="unSelect">  
  6. <input type="button" value="反选" class="btn" id="reverse">  
  7. <input type="button" value="获得选中的所有值" class="btn" id="getValue">
  1. $(function () {
  2. //全选或全不选
  3. $("#all").click(function(){
  4. if(this.checked){
  5. $("#list :checkbox").attr("checked", true);
  6. }else{
  7. $("#list :checkbox").attr("checked", false);
  8. }
  9. });
  10. //全选
  11. $("#selectAll").click(function () {
  12. $("#list :checkbox,#all").attr("checked", true);
  13. });
  14. //全不选
  15. $("#unSelect").click(function () {
  16. $("#list :checkbox,#all").attr("checked", false);
  17. });
  18. //反选*****
  19. $("#reverse").click(function () {
  20. $("#list :checkbox").each(function () {
  21. $(this).attr("checked", !$(this).attr("checked"));
  22. });
  23. allchk();
  24. });
  25. //设置全选复选框
  26. $("#list :checkbox").click(function(){
  27. allchk();
  28. });
  29. //获取选中选项的值
  30. $("#getValue").click(function(){
  31. var valArr = new Array;
  32. $("#list :checkbox[checked]").each(function(i){
  33. valArr[i] = $(this).val();
  34. });
  35. var vals = valArr.join(‘,‘);
  36. alert(vals);
  37. });
  38. });
  39. function allchk(){
  40. var chknum = $("#list :checkbox").size();//选项总个数
  41. var chk = 0;
  42. $("#list :checkbox").each(function () {
  43. if($(this).attr("checked")==true){
  44. chk++;
  45. }
  46. });
  47. if(chknum==chk){//全选
  48. $("#all").attr("checked",true);
  49. }else{//不全选
  50. $("#all").attr("checked",false);
  51. }
  52. }





以上是关于Vue实现单选、全选和反选的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0在table中实现全选和反选

Delphi实现DBGrid全选和反选功能

jQuery实现checkbox的全选和反选

JQuery案例二:实现全选全不选和反选

jquery实现全选和反选功能

Axure 实现批量的勾选和反选