Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:生成静态代码、动态输入列表_Javascript_Html_Dynamic - Fatal编程技术网

Javascript:生成静态代码、动态输入列表

Javascript:生成静态代码、动态输入列表,javascript,html,dynamic,Javascript,Html,Dynamic,我有这段代码,它检查一些id并启用其他id,javascript非常清楚它的作用,但由于它对应于一些特定的id范围,我不能在它完成之前只看一眼,但我正在寻找一种方法来实现这一动态并保存40行(或更多)代码,因为这不是最好的方法 function loopGroup1() { var a = 0; do { $$('.selectedAuthorities-3_' + a).each(function(chk1) { // watch for

我有这段代码,它检查一些id并启用其他id,javascript非常清楚它的作用,但由于它对应于一些特定的id范围,我不能在它完成之前只看一眼,但我正在寻找一种方法来实现这一动态并保存40行(或更多)代码,因为这不是最好的方法

function loopGroup1() {
    var a = 0;
    do {
        $$('.selectedAuthorities-3_' + a).each(function(chk1) {
            // watch for clicks
                chk1.observe('click', function(evt) {
                    dynamicCheckbox1();
                });
                dynamicCheckbox1();
            });
        a++;
    } while (a < 4);
}

function dynamicCheckbox1() {
    // count how many of group_first are checked,
    // doEnable true if any are checked
    var doEnable = ($$('.selectedAuthorities-3_0:checked').length > 0) ? true
            : false;
    var doEnable1 = ($$('.selectedAuthorities-3_1:checked').length > 0) ? true
            : false;
    var doEnable2 = ($$('.selectedAuthorities-3_2:checked').length > 0) ? true
            : false;
    // for each in group_second, enable the checkbox, and
    // remove the cssDisabled class from the parent label
    var i = 0;

    do {
        $$('.selectedAuthorities-4_' + i).each(function(item) {
            if (doEnable || doEnable1 || doEnable2) {
                item.enable().up('li').removeClassName('cssDisabled');
            } else {
                item.disable().up('li').addClassName('cssDisabled');
            }
        });
        i++;
    } while (i < 4);
};

/*
 * 
 * Loop Group 2
 * 
 * 
 */

function loopGroup2() {
    var a = 0;
    do {
        $$('.selectedAuthorities-5_' + a).each(function(chk1) {
            // watch for clicks
                chk1.observe('click', function(evt) {
                    dynamicCheckbox2();
                });
                dynamicCheckbox2();
            });
        a++;
    } while (a < 4);
}

function dynamicCheckbox2() {
    // count how many of group_first are checked,
    // doEnable true if any are checked
    var doEnable3 = ($$('.selectedAuthorities-5_0:checked').length > 0) ? true
            : false;
    // for each in group_second, enable the checkbox, and
    // remove the cssDisabled class from the parent label
    var i = 0;

    do {
        $$('.selectedAuthorities-6_' + i).each(function(item) {
            if (doEnable3) {
                item.enable().up('li').removeClassName('cssDisabled');
            } else {
                item.disable().up('li').addClassName('cssDisabled');
            }
        });
        i++;
    } while (i < 4);
};

/*
 * 
 * Loop Group 3
 * 
 * 
 */

function loopGroup3() {
    var a = 0;
    do {
        $$('.selectedAuthorities-6_' + a).each(function(chk1) {
            // watch for clicks
                chk1.observe('click', function(evt) {
                    dynamicCheckbox3();
                });
                dynamicCheckbox3();
            });
        a++;
    } while (a < 4);
}

function dynamicCheckbox3() {
    // count how many of group_first are checked,
    // doEnable true if any are checked
    var doEnable4 = ($$('.selectedAuthorities-6_0:checked').length > 0) ? true
            : false;
    var doEnable5 = ($$('.selectedAuthorities-6_1:checked').length > 0) ? true
            : false;
    // for each in group_second, enable the checkbox, and
    // remove the cssDisabled class from the parent label
    var i = 0;

    do {
        $$('.selectedAuthorities-7_' + i).each(function(item) {
            if (doEnable4 || doEnable5) {
                item.enable().up('li').removeClassName('cssDisabled');
            } else {
                item.disable().up('li').addClassName('cssDisabled');
            }
        });
        i++;
    } while (i < 4);
};

/*
 * 
 * Loop Group 4
 * 
 * 
 */

function loopGroup4() {
    var a = 0;
    do {
        $$('.selectedAuthorities-9_' + a).each(function(chk1) {
            // watch for clicks
                chk1.observe('click', function(evt) {
                    dynamicCheckbox4();
                });
                dynamicCheckbox4();
            });
        a++;
    } while (a < 4);
}

function dynamicCheckbox4() {
    // count how many of group_first are checked,
    // doEnable true if any are checked
    var doEnable6 = ($$('.selectedAuthorities-9_0:checked').length > 0) ? true
            : false;
    var doEnable7 = ($$('.selectedAuthorities-9_1:checked').length > 0) ? true
            : false;
    // for each in group_second, enable the checkbox, and
    // remove the cssDisabled class from the parent label
    var i = 0;

    do {
        $$('.selectedAuthorities-10_' + i).each(function(item) {
            if (doEnable6 || doEnable7) {
                item.enable().up('li').removeClassName('cssDisabled');
            } else {
                item.disable().up('li').addClassName('cssDisabled');
            }
        });
        i++;
    } while (i < 4);
};
函数loopGroup1(){
var a=0;
做{
$$('.selectedAuthorities-3_'+a)。每个(函数(chk1){
//注意点击
chk1.观察('点击')功能(evt){
dynamicCheckbox1();
});
dynamicCheckbox1();
});
a++;
}a<4;
}
函数dynamicCheckbox1(){
//计算首先检查的组_的数量,
//如果选中任何选项,则为doEnable true
var doEnable=($$('.selectedAuthorities-3_0:checked')。长度>0)?真
:假;
var doEnable1=($$('.selectedAuthorities-3_1:checked')。长度>0)?真
:假;
var doEnable2=($$('.selectedAuthorities-3_2:checked')。长度>0)?真
:假;
//对于组中的每一秒,启用复选框,然后
//从父标签中删除cssDisabled类
var i=0;
做{
$$('.selectedAuthorities-4_'+i)。每个(功能(项){
if(doEnable | | doEnable1 | | doEnable2){
item.enable().up('li').removeClassName('cssDisabled');
}否则{
item.disable().up('li').addClassName('cssDisabled');
}
});
i++;
}而(i<4);
};
/*
* 
*回路组2
* 
* 
*/
函数loopGroup2(){
var a=0;
做{
$$('.selectedAuthorities-5_'+a)。每个(函数(chk1){
//注意点击
chk1.观察('点击')功能(evt){
dynamicCheckbox2();
});
dynamicCheckbox2();
});
a++;
}a<4;
}
函数dynamicCheckbox2(){
//计算首先检查的组_的数量,
//如果选中任何选项,则为doEnable true
var doEnable3=($$('.selectedAuthorities-5_0:checked')。长度>0)?真
:假;
//对于组中的每一秒,启用复选框,然后
//从父标签中删除cssDisabled类
var i=0;
做{
$$('.所选权限-6_'+i).每个(功能(项){
如果(doEnable3){
item.enable().up('li').removeClassName('cssDisabled');
}否则{
item.disable().up('li').addClassName('cssDisabled');
}
});
i++;
}而(i<4);
};
/*
* 
*环路组3
* 
* 
*/
函数loopGroup3(){
var a=0;
做{
$$('.selectedAuthorities-6_'+a).每个(函数(chk1){
//注意点击
chk1.观察('点击')功能(evt){
dynamicCheckbox3();
});
dynamicCheckbox3();
});
a++;
}a<4;
}
函数dynamicCheckbox3(){
//计算首先检查的组_的数量,
//如果选中任何选项,则为doEnable true
var doEnable4=($$('.selectedAuthorities-6_0:checked')。长度>0)?真
:假;
var doEnable5=($$('.selectedAuthorities-6_1:选中')。长度>0)?真
:假;
//对于组中的每一秒,启用复选框,然后
//从父标签中删除cssDisabled类
var i=0;
做{
$$('.selectedAuthorities-7_'+i)。每个(功能(项){
如果(doEnable4 | | doEnable5){
item.enable().up('li').removeClassName('cssDisabled');
}否则{
item.disable().up('li').addClassName('cssDisabled');
}
});
i++;
}而(i<4);
};
/*
* 
*环路组4
* 
* 
*/
函数loopGroup4(){
var a=0;
做{
$$('.selectedAuthorities-9_'+a)。每个(函数(chk1){
//注意点击
chk1.观察('点击')功能(evt){
dynamicCheckbox4();
});
dynamicCheckbox4();
});
a++;
}a<4;
}
函数dynamicCheckbox4(){
//计算首先检查的组_的数量,
//如果选中任何选项,则为doEnable true
var doEnable6=($$('.selectedAuthorities-9_0:checked')。长度>0)?真
:假;
var doEnable7=($$('.selectedAuthorities-9_1:checked')。长度>0)?真
:假;
//对于组中的每一秒,启用复选框,然后
//从父标签中删除cssDisabled类
var i=0;
做{
$$('.所选权限-10_'+i).每个(功能(项){
如果(doEnable6 | | doEnable7){
item.enable().up('li').removeClassName('cssDisabled');
}否则{
item.disable().up('li').addClassName('cssDisabled');
}
});
i++;
}而(i<4);
};

这不是答案,但这里有一些额外的代码:

var doEnable = ($$('.selectedAuthorities-3_0:checked').length > 0) ? true
            : false;
应该是

var doEnable = $$('.selectedAuthorities-3_0:checked').length > 0;

三元运算符只是让它变得更笨拙。

代码中有许多不必要的重复,可能更具体地说,您正在尝试执行的操作,即我希望使用此函数X,并允许它对任何一组复选框或其他对象起作用。很难说你在问什么“在它完成之前我不能只看一眼,但我正在寻找一种方法来实现这个动态”