2011-11-06 103 views
0

我有一個通過URL(GET方法)動態生成的頁面。這種動態頁面生成大量的其他的東西之間的HTML以下行:Javascript中的初始輸入值

<input type='hidden' name='device' id='device' value='abcd' /> 

我還裝載了幾個JavaScript功能,我想一個他們能夠閱讀「設備」的初始值,但是,它似乎無法讀取初始頁面加載的初始值。如果在加載頁面後再次觸發javascript函數,它會讀取它。

我用我的.js下面的代碼文件

jQuery(document).ready(function(){ 
    var device = jQuery('#device').val(); 
}); 

調試時,INTIAL頁面加載設備上簡單地設置爲「未定義」任何人有什麼想法?謝謝。

布賴恩

+0

*您如何調試它?在代碼示例中設置它之後,您要在哪裏讀取它? – Quentin

+0

你的意思是發生了加載內容的'.ajax()'或'$ .get()'調用,對吧?所以它是異步加載的,'$ .ready()'在加載'async:true'之前就會被觸發。您是否嘗試過在內容加載時設置'async:false'? –

+0

使用Chrome開發人員工具 – bpmccain

回答

1

這意味着元素是不可用你正在尋找它的價值的時候,你可以使用onload事件或之前</body>標籤把你的腳本。

這應該工作:

$(window).load(function(){ 
    var device = jQuery('#device').val(); 
}); 
+1

它是不是已經應該使用'$(document).ready'來裝載? – ZenMaster

+0

@ ZenMaster:根據OP,它是動態生成的,因爲哪一個不能肯定地說。 – Sarfraz

1

如果您有您作爲一個AJAX請求的響應HTML加載這些JavaScript的功能結合在一起 - 這是可能的,因一時的JS執行此代碼:

jQuery(document).ready(function(){ 
    var device = jQuery('#device').val(); 
}); 

它是指現有的DOM?如果您沒有重新加載您的body--當您將收到的HTML插入到您現有的DOM中時,我沒有看到此事件觸發。