2012-02-29 90 views
1

我有两个下拉列表平行,这是第一个如何根据另一个下拉选项选择更改一个特定的下拉选项?

<select onchange="selchng1(1,this.id)" id="first1" name="sesion[]" class="tx_bx"> 
<option select="selected" value="select1">- Select -</option> 
<option value="14275">Session #1: Tues May 31st - Fri June 10th (1-5:30PM)</option> 
<option value="14276">Session #2: Tues June 14th - Fri June 24th (9-2:00PM)</option> 
<option value="14277">Session #3: Tues June 28th - Fri July 8th (9-2:00PM)</option> 
<option value="14278">Session #4: Tues July 12th - Fri July 22nd (9-2:00PM)</option> 
</select> 

和第二个是,

<select onchange="selchng1(1,this.id)" id="first_time1" name="time[]" class="tx_bx"><option select="selected" value="select2">- Select -</option> 
<option value="14270">#1 only: 1pm</option> 
<option value="14271">#1 only: 1:30pm</option> 
<option value="14272">#1 only: 2pm</option> 
<option value="14273">#1 only: 2:30pm</option> 
<option value="14313">#1 only: 3:30pm</option> 
<option value="14314">#1 only: 4pm</option> 
</select> 

现在我需要做的是,

时,从第一个下拉列表中选择第一选项 <option value="14275">Session #1: Tues May 31st - Fri June 10th (1-5:30PM)</option>

我需要显示从第二下拉前三个选项。

<option value="14270">#1 only: 1pm</option> 
<option value="14271">#1 only: 1:30pm</option> 
<option value="14272">#1 only: 2pm</option> 

然后在第一个选择框中其余选项,

<option value="14275">Session #1: Tues May 31st - Fri June 10th (1-5:30PM)</option> 
<option value="14276">Session #2: Tues June 14th - Fri June 24th (9-2:00PM)</option> 
<option value="14277">Session #3: Tues June 28th - Fri July 8th (9-2:00PM)</option> 
<option value="14278">Session #4: Tues July 12th - Fri July 22nd (9-2:00PM)</option> 

我需要显示从第二个选择框其余选项,

<option value="14273">#1 only: 2:30pm</option> 
<option value="14313">#1 only: 3:30pm</option> 
<option value="14314">#1 only: 4pm</option> 

我怎么能这样做呢?请您及时咨询我。

+0

你将不得不满足了AJAX的第二个选项。处理第一个选项选项,根据从第一个选项中选择的内容过滤第二组选项,并相应地传递第二组选项。 – ckaufman 2012-02-29 19:58:56

+0

@ckaufman如何在AJAX中做到这一点?我可以使用jquery post方法吗? – 2012-02-29 20:01:59

+0

无需AJAX这里,就是这样击败 - 你知道所有可能的组合前期,可以节省往返 – 2012-02-29 20:13:58

回答

0
//This stores the options 
var options=[ 
    ["14270", "#1 only: 1pm"], 
    ["14271", "#1 only: 1:30pm"], 
    ... 
    ["14314","#1 only: 4pm"] 
]; 

//This is the index first1 -> first_time1 
var index=[ 
    [], 
    [0,1,2], 
    [3,4,5], 
    [3,4,5], 
    [3,4,5] 
]; 

function update_first_time1(selidx) { 
    //Get select box options collection 
    var o=document.getElementById('first_time1'); 
    if (!o) return false; 
    if (!o.options) return false; 
    o=o.options; 

    //Empty options 
    while (o.length>0) o[o.length-1]=null; 

    //Get the index of options to add 
    var a=index[selidx]; 

    //Add these options 
    for (var i=0; i<a.lenght; i++) 
    o[o.length]=new Option(options[i][1], options[i][0]); 

    //done! 
} 

//First select box: hook onchange 
<select onchange="selchng1(1,this.id); update_first_time1(this.selectedIndex)" id="first1" name="sesion[]" class="tx_bx"> 
... 
</select> 
+0

它显示o.reomve()不是一个函数 – 2012-03-01 09:26:53

+0

当我发表意见o.remove()行则没有JavaScript错误显示,但功能不起作用。 – 2012-03-01 09:51:58

+0

AHA - 不好,浏览器不好...是IE吗?无论如何,我用旧的访问模式替换了'o.remove()'和'o.add()',请重试 – 2012-03-01 10:16:26

相关问题