2013-06-24 9 views
0

Javascript Nub.вызов функции javascript внутри функции

Запуск функции, которая проверяет состояние 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); 
} 

Etc,

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 и затем снова вернуться к основной функции в правой точке? Я предполагаю, что «return» не является правильной командой (если im WAY выключен, просто скажите и больно сделайте это длинным путем). Thankyou

ответ

0

Остальная часть если заявления не будет называться, потому что вы возвращаете из функции, если первая один хит .:

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

функция возврата в JavaScript, немедленно вернуться к призванию либо со значением, либо без него. Код выше в основном говорит: «Если вы дошли до этой точки, запустить setass функции с параметром 3, и возвращает результат обратно к вызывающим chek

Вы должны удалить этот оператор возврата, если вы хотите. метод для продолжения без окончаний.

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

thankyou, его все еще плохое поведение, я думаю, что моя структура плохая, но она работает так долго, так что продолжайте с этим. – gordo