在函数内调用javascript函数

时间:2013-06-24 01:53:04

标签: javascript function html-select

Javascript Nub。

运行一个检查5个选择框状态的函数,如果它们的值是“选择”,我想运行一个函数来根据另一个值填充它们。我可以在第一个函数中执行此操作,但它会很长。

缩写版。

function chek{

var tligc = document.getElementById('assigc').innerHTML;   
var tligd = document.getElementById('assigd').innerHTML;



 if(tligc == 'Select'){document.getElementById('otherAgency3').className = 'textBox';
    return setass(3);
       }      

if(tligd == 'Select'){document.getElementById('otherAgency4').className = 'textBox'
 return setass(4);
}

等,

function setass(value){  

    var KaRa = document.getElementById('assig').innerHTML;

                           if(KaRa =='Planning Officer'){
 document.getElementById('otherAgency'+[value]).options.length=0
 document.getElementById('otherAgency'+[value]).options[0]=new Option("Select", "Select", true, false)  
 document.getElementById('otherAgency'+[value]).options[1]=new Option("Situation Unit", "Situation Unit", true, false)
 document.getElementById('otherAgency'+[value]).options[2]=new Option("Management Support", "Management Support", true, false)  
         return  }
else if(KaRa =='Operations Officer'){
 document.getElementById('otherAgency'+[value]).options.length=0
 document.getElementById('otherAgency'+[value]).options[0]=new Option("Select", "Select", true, false)  
 document.getElementById('otherAgency'+[value]).options[1]=new Option("Staging Area Manager", "Staging Area Manager", true, false)
    return }
else if(KaRa =='Logistics Officer'){
 document.getElementById('otherAgency'+[value]).options.length=0
 document.getElementById('otherAgency'+[value]).options[0]=new Option("Select", "Select", true, false)  
 document.getElementById('otherAgency'+[value]).options[1]=new Option("Supply Unit", "Supply Unit", true, false)
 document.getElementById('otherAgency'+[value]).options[2]=new Option("Communications Support", "Communications Support", true, false)  
 document.getElementById('otherAgency'+[value]).options[3]=new Option("Facilities Unit", "Facilities Unit", true, false)
        return }
    else{document.getElementById('otherAgency'+[value]).options.length=0;
      return }
       }
 }    

它填充了第一个选项但是没有运行剩余的checkiner函数,如果测试,任何关于如何运行函数setass然后在正确的点再次返回main函数的指针?我假设'返回'不是正确的命令(如果即时通知只是说和生病做很长的路)。 三江源

1 个答案:

答案 0 :(得分:0)

if语句的其余部分将不会被调用,因为如果第一个被命中,你将从函数返回。:

if(tligc == 'Select') {
    document.getElementById('otherAgency3').className = 'textBox';
    return setass(3);
}  

javascript中的return函数会立即返回到调用函数,无论是值还是没有值。上面的代码基本上是说:“如果你到达这一点,运行参数为3的setass函数,并将结果返回给chek的调用者。

如果希望方法继续而不结束,则需要删除此return语句。

if(tligc == 'Select') {
    document.getElementById('otherAgency3').className = 'textBox';
    setass(3);
}