4个复选框,如果选中了2个或更多复选框,我想随机触发1个与其中一个复选框相关联的功能

凯蒂

抱歉,标题太乱了,让我尝试使其更容易...

假设复选框为每个复选框返回以下内容:

checkboxOne = false;
checkboxTwo = true;
checkboxThree = true;
checkboxFour = true;    

我也有4个功能:

userFuncOne() {...}
userFuncTwo() {...}
userFuncThree() {...}
userFuncFour() {...}

如果两个或两个以上的复选框为true,则我希望随机触发其中一个函数,但仅触发与某个true关联的函数。因此,在上面的示例中,userFuncOne()无法触发,但是其余的可以触发,并且其中只有一个是随机触发的。

我将如何最有效地做到这一点?显然,我可以做很多if和else的事情,但这似乎效率很低。

有没有更好的办法?谢谢!

海因里希

这是我评论中的一个示例片段,也许您在追求什么?您可能想要对其进行调整,这只是概念的证明:)

function funcA(){console.log('funcA');}
function funcB(){console.log('funcB');}
function funcC(){console.log('funcC');}
function funcD(){console.log('funcD');}

var functionList = [];

function oncheckBoxClick(cBox){
  var funName = cBox.dataset.fname;
  if(cBox.checked){
    functionList.push(funName);
  }
  else{    
    var index = functionList.indexOf(funName);    
      
    if (index > -1) {
      functionList.splice(index, 1);
    }
  }
  
   if(functionList.length>=2){
     var randomIndex = Math.floor(Math.random() * functionList.length);
     this[functionList[randomIndex]]();   
     }
    
}
<input type="checkbox"  onclick="oncheckBoxClick(this)" data-fname="funcA" />
<input type="checkbox"  onclick="oncheckBoxClick(this)" data-fname="funcB" />
<input type="checkbox"  onclick="oncheckBoxClick(this)" data-fname="funcC" />
<input type="checkbox"  onclick="oncheckBoxClick(this)" data-fname="funcD" />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果选中一个复选框,如何取消选中另一个复选框?

来自分类Dev

如果选中一个复选框,如何取消选中另一个复选框?

来自分类Dev

复选框列表中仅选中了一个复选框

来自分类Dev

检查是否选中了一个复选框

来自分类Dev

检查是否选中了一个复选框

来自分类Dev

选中一个复选框时,请选中其他复选框

来自分类Dev

如果选中了一个复选框,如何取消选中所有复选框?

来自分类Dev

取消选中一个复选框(如果另一个选中了javascript)

来自分类Dev

HTML复选框-仅允许选中一个复选框

来自分类Dev

jQuery的每个复选框行仅选中一个复选框

来自分类Dev

选中复选框,如果另一个复选框被选中

来自分类Dev

如果选中一个复选框,则将另一复选框设置为未选中

来自分类Dev

仅选中一个复选框

来自分类Dev

仅选中一个复选框

来自分类Dev

要求选中一个复选框

来自分类Dev

用dalekjs选中一个复选框

来自分类Dev

如果选中了包含多个复选框的div中的一个复选框,则将类添加到所有复选框

来自分类Dev

选中所有复选框道具,但我只想触发一个复选框

来自分类Dev

取消选中其中一个复选框时,取消选中CheckboxAll

来自分类Dev

如果选中了一个复选框,请取消选中另一个复选框,然后显示/隐藏HTML代码

来自分类Dev

如果至少选中了一个复选框,则取消禁用按钮

来自分类Dev

如果至少选中了一个复选框,则检查长度

来自分类Dev

如果未选中一个孩子,则取消选中父复选框

来自分类Dev

如何检查多个复选框中是否至少选中了一个复选框?

来自分类Dev

jQuery仅在4个复选框的组中选中2个复选框

来自分类Dev

如果使用CSS选中了另一个复选框,如何隐藏一个复选框?

来自分类Dev

选中另一个复选框后,取消选中该复选框

来自分类Dev

仅选中一个复选框,然后取消选中其他复选框

来自分类Dev

在Gridview中选中一个复选框后,会选中(取消)多个复选框-Android

Related 相关文章

  1. 1

    如果选中一个复选框,如何取消选中另一个复选框?

  2. 2

    如果选中一个复选框,如何取消选中另一个复选框?

  3. 3

    复选框列表中仅选中了一个复选框

  4. 4

    检查是否选中了一个复选框

  5. 5

    检查是否选中了一个复选框

  6. 6

    选中一个复选框时,请选中其他复选框

  7. 7

    如果选中了一个复选框,如何取消选中所有复选框?

  8. 8

    取消选中一个复选框(如果另一个选中了javascript)

  9. 9

    HTML复选框-仅允许选中一个复选框

  10. 10

    jQuery的每个复选框行仅选中一个复选框

  11. 11

    选中复选框,如果另一个复选框被选中

  12. 12

    如果选中一个复选框,则将另一复选框设置为未选中

  13. 13

    仅选中一个复选框

  14. 14

    仅选中一个复选框

  15. 15

    要求选中一个复选框

  16. 16

    用dalekjs选中一个复选框

  17. 17

    如果选中了包含多个复选框的div中的一个复选框,则将类添加到所有复选框

  18. 18

    选中所有复选框道具,但我只想触发一个复选框

  19. 19

    取消选中其中一个复选框时,取消选中CheckboxAll

  20. 20

    如果选中了一个复选框,请取消选中另一个复选框,然后显示/隐藏HTML代码

  21. 21

    如果至少选中了一个复选框,则取消禁用按钮

  22. 22

    如果至少选中了一个复选框,则检查长度

  23. 23

    如果未选中一个孩子,则取消选中父复选框

  24. 24

    如何检查多个复选框中是否至少选中了一个复选框?

  25. 25

    jQuery仅在4个复选框的组中选中2个复选框

  26. 26

    如果使用CSS选中了另一个复选框,如何隐藏一个复选框?

  27. 27

    选中另一个复选框后,取消选中该复选框

  28. 28

    仅选中一个复选框,然后取消选中其他复选框

  29. 29

    在Gridview中选中一个复选框后,会选中(取消)多个复选框-Android

热门标签

归档