gpt4 book ai didi

javascript - 使 if/else if 语句不那么笨拙。新手在这里

转载 作者:行者123 更新时间:2023-11-30 10:47:07 27 4
gpt4 key购买 nike

尽管这是在 Breezingforms 中为 Joomla 创建的表单,但我的问题更像是一个通用的 javascript 问题。我对 javascript 很陌生,所以希望有人能轻松回答这个问题。这是在表单初始化时调用的。

我在选择列表对象中使用 javascript 循环来隐藏/取消隐藏表单的各个部分,具体取决于选择列表的选择。我试图使 if/else if 语句不那么笨拙。我敢肯定有一种方法可以使它更短更简洁,但是作为一个新手,我一直无法弄清楚。

附带说明(目前不那么重要,但会很重要),我想将此脚本用于其他选择列表调用,但有细微的变化。我仍然不太清楚重用代码。如果有人对此有任何意见,我们将不胜感激。

顺便说一句,我还是 jQuery 的新手,所以如果你去那里,请多多关照! :)

var selListVal = "";
var selListInput = JQuery("[name=\"mySelectionList[]\"]");
for (var i = 0; i < selListInput.length; i++)
if (selListInput[i].value) {
if (selListVal != "") selListVal += ",";
selListVal += selListInput[i].value;
}
if( selListVal == "myselection01" ){
ToggleFields('on', 'section', 'mysection01A', DeactivateField);
ToggleFields('on', 'section', 'mysection01B', DeactivateField);
}
else if( selListVal == "myselection02" ){
ToggleFields('on', 'section', 'mysection01A', DeactivateField);
ToggleFields('on', 'section', 'mysection01B', DeactivateField);
ToggleFields('on', 'section', 'mysection02A', DeactivateField);
ToggleFields('on', 'section', 'mysection02B', DeactivateField);
}
else if( selListVal == "myselection03" ){
ToggleFields('on', 'section', 'mysection01A', DeactivateField);
ToggleFields('on', 'section', 'mysection01B', DeactivateField);
ToggleFields('on', 'section', 'mysection02A', DeactivateField);
ToggleFields('on', 'section', 'mysection02B', DeactivateField);
ToggleFields('on', 'section', 'mysection03A', DeactivateField);
ToggleFields('on', 'section', 'mysection03B', DeactivateField);
}
else {
ToggleFields('off', 'section', 'mysection01A', DeactivateField);
ToggleFields('off', 'section', 'mysection01B', DeactivateField);
ToggleFields('off', 'section', 'mysection02A', DeactivateField);
ToggleFields('off', 'section', 'mysection02B', DeactivateField);
ToggleFields('off', 'section', 'mysection03A', DeactivateField);
ToggleFields('off', 'section', 'mysection03B', DeactivateField);
}

最佳答案

这样的事情怎么样?

var num = parseInt(selListVal.replace('myselection', ''));

if(num > 0){
ToggleFields('on', 'section', 'mysection01A', DeactivateField);
ToggleFields('on', 'section', 'mysection01B', DeactivateField);
}
if(num > 1){
ToggleFields('on', 'section', 'mysection02A', DeactivateField);
ToggleFields('on', 'section', 'mysection02B', DeactivateField);
}
if(num > 2){
ToggleFields('on', 'section', 'mysection03A', DeactivateField);
ToggleFields('on', 'section', 'mysection03B', DeactivateField);
}

或者通过user968951来说明这个想法

var num = parseInt(selListVal.replace('myselection', ''));

for (var x=1; x<=num; x++){
ToggleFields('on', 'section', 'mysection0' + x + 'A', DeactivateField);
ToggleFields('on', 'section', 'mysection0' + x + 'B', DeactivateField);
}

关于javascript - 使 if/else if 语句不那么笨拙。新手在这里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659897/

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