2015-12-30 126 views
0

我正在寻找一些动态地自动填充人口下拉菜单的帮助。动态填充下拉菜单

我写的代码对我来说不起作用,但是它起初并且现在停止了。

我哪里错了?

HTML:

<form id="booking_form" onsubmit="return checkForm()" method="post" action=""> 
    <div> 
     <!-- Select Movie --> 
     <span class="label">Movie Name:</span> 
     <select name="movie" id="movie_name" onChange="changeday(this.value);"> 
      <option value="" disabled selected>Choose Movie</option> 
      <option value="SW">Star Wars: The Force Awakens</option> 
      <option value="WC">Wedding Crashers</option> 
      <option value="GD">The Good Dinosaur</option> 
      <option value="BR">Battle Royale</option> 
     </select> 
    </div> 

    <div> 
     <!-- Select Day -->      
     <span class="label">Session Day:</span> 
     <select name="day" id="session_day"> 
      <option value="" disabled selected>Please Select a Movie</option> 
     </select> 
    </div> 
</form> 

的JavaScript:

var moviesByDays = { 
     SW: ["Monday", "Monday", "Monday", "Monday"], 
     WC: ["Tuesday", "Tues", "Tues", "Tues"], 
     GD: ["Wednesday", "Wed", "Wed", "Wed", "Wed"], 
     BR: ["Thursday", "Thurs", "Thurs", "Thurs", "Thurs"] 
} 

function changeday(value) { 
    if (value.length == 0) document.getElementById("session_day").innerHTML = "<option></option>"; 
    else { 
     var catOptions = ""; 
     for (session_dayId in moviesByDay[value]) { 
      daysOptions += "<option>" + moviesByDays[value][session_dayId] + "</option>"; 
     } 
     document.getElementById("session_day").innerHTML = daysOptions; 
    } 
} 

我怎样才能使这项工作?

在此先感谢您的帮助。

+0

如果我只有每个这个问题被问过一次一毛钱.... –

+0

也许你想要将帮助 –

回答

0

那是因为你在变量和赋值中犯了一些错误。在Script标签以下用途:

var moviesByDays = { 
     SW: ["Monday", "Monday", "Monday", "Monday"], 
     WC: ["Tuesday", "Tues", "Tues", "Tues"], 
     GD: ["Wednesday", "Wed", "Wed", "Wed", "Wed"], 
     BR: ["Thursday", "Thurs", "Thurs", "Thurs", "Thurs"] 
    } 


    function changeday(value) { 
    var daysOptions = []; //That will Clear first selection on every new selection 
    if (value.length == 0) document.getElementById("session_day").innerHTML = "<option></option>"; 
    else { 
     var catOptions = ""; 
     for (session_dayId in moviesByDays[value]) {     
      daysOptions += "<option>" + moviesByDays[value][session_dayId] + "</option>"; 
     } 
     document.getElementById("session_day").innerHTML = daysOptions; 
    } 
} 

Demo

+0

感谢您的下拉菜单的快捷图!完美的作品! –

+0

刚刚创建了一个小提琴,解决了这个问题并准备发布答案;你就在那里!大声笑。不管怎样,谢谢。希望你能解决@Lachlan Norris –