2013-06-24 91 views
0

Javascript Nub。函數內調用javascript函數

運行一個函數,檢查5個選擇框的狀態,如果它們的值是「Select」我想運行一個函數來根據另一個值填充它們。我可以在第一個功能中做到這一點,但它會變得很長。

的縮寫版本。

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 } 
     } 
}  

其填充的第一選擇,但不運行檢查功能的其餘部分的滯留者,如果測試,如何運行功能setass任何指針和然後在正確的位置再次返回主功能?即時通訊假設'返回'不是正確的命令(如果我只是說,生病就是這麼做)。 三江源

回答

0

的其餘部分的if語句將不會被調用,因爲你是從函數返回如果第一個被擊中:

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

在JavaScript中返回功能,將立即返回到調用函數,無論是有價值的還是沒有價值的。上面的代碼基本上是這樣說的:「如果你到了這一點,運行參數爲3的setass函數,並將結果返回給調用者chek

如果你想要刪除這個return語句繼續無法結束的方法

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

謝謝你,它仍然行事不端,我認爲我的結構很糟糕,但它的工作原理很糟糕,所以生病了,再次感謝。 – gordo