2014-10-13 123 views
1

我有2個獨立的下拉菜單。 我想使用JavaScript更改下拉選擇時的URL。 它幾乎工作,因爲我傳遞一個值,但我仍然在URL窗口中得到'未定義'。 代碼爲波紋管:2下拉菜單打開網址

的JavaScript:

function callDDfunction(val) { 
     alert("The new value is: " + val); 
     if (this.selectedIndex!==0) { 
      window.location.href = this.value; 
     } 

     }; 

HTML:

<select onchange="callDDfunction(this.value)"> 
         <option value="">Site Navigation:</option> 
         <option value="index.php">Home</option> 
         <option value="register.php">Sign Up</option> 
</select> 

<select onchange="callDDfunction(this.value)"> 
         <option value="">Seasons Archive:</option> 
         <option value="/seasons/nba/2012-13/">Season 1: NBA 2012-2013</option> 
         <option value="/seasons/nba/2013-14/">Season 2: NBA 2013-2014</option> 
</select> 

回答

0

使用this.val()代替this.value

3

在你的代碼thiswindow對象沒有value屬性。您的值傳遞給你的函數,val參數是當前值,簡單地使用它:

window.location.href = val; 

如果你想有機會獲得用於檢查selectedIndex屬性選擇元素,將元素本身,而不是它的值:

<select onchange="callDDfunction(this)"> 

然後你的函數體將是:

function callDDfunction(elem) { 
    alert("The new value is: " + elem.value); 
    if (elem.selectedIndex !== 0) { 
     window.location.href = elem.value; 
    } 
};