2013-10-20 39 views
0

我正在嘗試創建一個簡單的JavaScript函數,它將填充2個下拉框,一個用於年齡,另一個用於性別。Javascript函數未加載,在Chrome開發者控制檯中未顯示錯誤

但是,功能不起作用,我似乎無法弄清楚爲什麼。任何幫助將不勝感激。

代碼:

<head> 

<script type="text/javascript"> 

    function AgeDropDown(){ 
     var list=getElementById(UserProfileAge); 
     for(var i=1;i<100;i++) 
     { 
      var opt = document.createElement("option"); 
      opt.value= i; 
      UserProfileAge.appendChild(opt); 
     } 
    } 

    function genderlist(){ 
     var choices=new array["M","F"]; 
     for(i=0;i<choices.length;i++) 
     { 
      var opt = document.createElement("option"); 
      opt.value= i; 
      UserProfileGender.appendChild(opt); 
     } 
    } 

</script> 

</head> 
<body> 
<?php 
include("usermenubar.inc"); 
?> 
<form id='UserProfile' name='UserProfile' method='POST' action='editdetails.php'> 


<div class='UserDetails'><!--dropdown--> 
    Age:<select id='UserProfileAge' name='UserProfileAge' onclick='AgeDropDown'> 
    <option value=''>Please enter your age</option> 
    </select> 
</div> 

<div class='UserDetails'><!--Dropdown--> 
    Gender:<select id='UserProfileGender' name='UserProfileGender' onclick="genderlist"> 
    <option value=''>Please enter your gender</option> 
    </select> 
</div> 


<input type='submit' name='UserProfleSubmit' value='Save Changes'/> 
</form> 
</body> 
</html> 
+2

嘗試AgeDropDown()和HTML genderlist() 「的onclick」 HI – ZiTAL

回答

1

這可以幫助:

function load(){ 
    AgeDropDown(); 
    genderlist(); 
    } 

function AgeDropDown(){ 
     var list=document.getElementById("UserProfileAge"); 
     for(var i=1;i<100;i++) 
     { 
      var opt = document.createElement("option"); 
      opt.value= i; 
      list.appendChild(opt); 
     } 
    } 

    function genderlist(){ 
     var choices=new array["M","F"]; 
     for(i=0;i<choices.length;i++) 
     { 
      createOption(document.getElementById("UserProfileGender")); 
     } 
    } 
+0

我試過你列出的,但仍然得到一個未捕獲的ReferenceError:getElementById未定義。點擊它後,它指向AgeDropDown,加載和加載。 –

+1

AgeDropDown()中的第一行應該是var list = document.getElementById(「UserProfileAge」); –

1

你的功能加載,但他們從來沒有執行,因爲它們永遠不會被調用。你必須在你的html文件的某個時刻調用這個函數。運行初始化代碼的最佳實踐就像在頁面的onload事件上一樣。

<script> 
function load() 
{ 
    AgeDropDown(); 
    genderlist() 
} 
... 
</script> 



<body onload="load()"> 
+0

阿龍,感謝您抽出寶貴時間來回答,我已經編輯我的代碼你的建議。 HOwever,在加載頁面並點擊選項時,我得到了onclicks的uncaughtreferenceerror。任何想法爲何如此? –

+2

var list = getElementById(UserProfileAge);應該是var list = getElementById(「UserProfileAge」); –

+1

@ken請不要這樣做 - 不要用新的覆蓋你的問題。即使給另一個附加一個新的問題也是不好的做法。 –

相關問題