gpt4 book ai didi

javascript - 4 个复选框,如果选中 2 个或更多复选框,我想随机触发与其中一个复选框关联的 1 个函数

转载 作者:行者123 更新时间:2023-11-28 05:13:00 24 4
gpt4 key购买 nike

抱歉,如果标题很困惑,让我尝试让它变得更简单......

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

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

我还有4个功能:

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

如果 2 个或更多复选框为真,我希望随机触发其中一个功能,但仅限与 true 关联的功能。值(value)。所以在上面的例子中,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" />

关于javascript - 4 个复选框,如果选中 2 个或更多复选框,我想随机触发与其中一个复选框关联的 1 个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41215145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com