2013-10-14 27 views
0

這似乎是一個簡單的事情,我真的很想多瞭解一點。這是我的問題。從外部JavaScript文件訪問表單元素

我有一個選擇與坐在一個窗體內的幾個不同的選項。我需要一個變量來保存哪個選項,以便從那裏我可以根據選擇的內容做不同的事情。

這裏是我的html:

<!DOCTYPE html> 
    <html> 
    <head> 
     <title>Test</title> 
     <script src="script.js" type="text/javascript"></script> 
    </head> 
    <body> 

    <form method="get"> 
     <table> 
      <tr> 
       <p> 
        Please choose your class: 
       </p> 
      </tr> 
      <tr> 
       <td> 
        <select name= "classSelect" id="classSelect" size = "3"> 
         <option value = "CS211" selected = "selected">CS-211</option> 
         <option value = "CS111">CS-111</option> 
         <option value = "CS275">CS-275</option> 
        </select> 
       </td> 
      </tr> 
     </form 
    </body> 
</html> 

然後在我的JavaScript文件,我只是想聲明一個全局變量:

var currentSelection = document.forms[0].classSelect.selectedIndex; 

現在currentSelection總是空,我不知道爲什麼。

+1

也許使用jQuery和做$( 「#classSelect」)VAL() ? – NWard

回答

3

當您設置變量時,DOM尚未呈現。要麼等待DOM啓動其就緒事件,要麼在文檔加載後設置腳本運行。這裏有一個解決方案:

window.onload = function() { 
    // run this code on load 
}; 

請注意,這將覆蓋以前的onload函數。如果您有jQuery的可用,你應該這樣做,而不是爲了避免任何會覆蓋:

$(window).load(function() {}); 

這些變體也行。

$(function() {}); 
$(document).ready(function() {}); 
+0

完成我需要做的事情的最佳方式是什麼? –

+0

我修改了答案。 – hexacyanide

+0

currentSelection仍未定義。我期待它的初始值爲零,因爲我在默認情況下選擇了我的選擇列表中的第一個元素,如果我點擊第二個元素,它應該變成一個,等等。我是否在討論這個錯誤? –