2013-10-10 43 views
0

這一直困擾我整天,如果任何人都可以幫助,我會很大。上一個功能完成時執行javascript函數

if(aaid) { 
    var num_one = aaid; 
    var radioBox = document.getElementsByName('used_dealer_before'); 
    for (i = 0; i < radioBox.length; i++) { 
     if(num_one) { 
      radioBox[i].checked = true; //this auto checks the box 
     } 
    } 
    radioBox.onchange=function(){ 
     document.getElementById("previous_dealer").value=num_one; //this auto selects the  value from the dropdown 
    } 
} 

以上汽車的函數檢查radiobox如果一個變量(AAID)存在,一旦選中該複選框中有另一個腳本文件中的另一個功能(我沒有訪問;長的故事)呈現一個下拉菜單。我的腳本的下一部分在下拉列表中自動選擇一個值。這個腳本的工作原理已經過本地測試。但是,當我將它上載到服務器時,它不再執行腳本的第二部分。我懷疑是因爲該功能已經執行,當頁面還沒有完成渲染下拉值。因此,任何人都可以向我解釋如何在繼續使用腳本之前使用JavaScript等待下拉菜單出現?

我應該延時功能嗎?我不能使用jQuery,我必須使用JavaScript。

+1

在您遇到問題的頁面上,'radioBox.length'> 0. 'radioBox.onchange = ...'沒有意義,因爲'radioBox'是一個_array_。 –

+0

頁面中包含的其他腳本文件(您無權訪問,長篇故事)如何?它是否通過'document.createElement('script')'進行延遲加載? – slebetman

回答

1

這聽起來像你正在尋找建立一個回調函數。當使用XHR/AJAX請求外部服務來獲取外部數據或代碼時,通常會這樣做。

http://somedomain.com/resources?arg1=val1&callback=scriptready 

回調參數給出的值對應於一些全球性:例如,當你想從一個服務器的東西,希望當它準備通知,您可以使用查詢字符串參數定義一個回調函數可訪問的功能:

window['scriptready'] = function(val){ console.log("got response: "+val); } 

如果您正在使用的此資源提供了使用回調的選項,那就是您的答案。如果沒有,那麼你需要一些更復雜的方法來根據你的盒子被選中或什麼時候設置一個監聽器。

相關問題