2011-07-10 132 views
0

我在JavaScript的新..这是我的问题。我有下拉列表:开关和选择在JavaScript

<div class="spanNav-row" id="spanNav-row"> 
    <select name="timeDropList"> 

    <option value="6">6</option> 
    <option value="10">10</option> 
    <option value="15">15</option> 
    <option value="30">30</option> 
    <option value="60" selected>60</option> 
    <option value="Vac">Vacation</option> 

    </select> 
</div> 

,我有一个开关:

switch() { 

    case 6: 
    break; 
    case 10: 
    break; 
    case 15: 
    break; 
    case 30: 
    break; 
    case 60: 
    break; 
    default: 
    break; 
} 

怎么办您将下拉列表的值传输给交换机?

+0

演示:http://jsfiddle.net/userdude/PCGjU/您需要打开Chrome控制台或Firefox Firebug控制台才能看到输出。 –

回答

4

标准JS:

var ddl = document.getElementById("timeDropList"); 
var selectedValue = ddl.options[ddl.selectedIndex].value; 

switch (selectedValue) {} 

的jQuery(如果你有兴趣):

switch($('#timeDropList option:selected').val()) {} 

注:要引用由getElementById()下降,timeDropList也将具有Ë是ID,不只是名称:

<select id="timeDropList" name="timeDropList"> 
+0

okey ..你能否解释为什么你使用getElementsById(“spanNav-row”)而不是“timeDropList”? – Sergio

+0

由于HTMLDivElement上不存在'options' HTMLCollection,所以会引发错误。我建议给选择附加一个'id'属性,然后对它的值进行切换。 – 2011-07-10 18:36:28

+0

@Sergio,道歉,更新。我把它归咎于小巧的上网本屏幕。我复制并粘贴了错误的ID ... –

1
var swi_var = document.getElementById('spanNav-row').value; 

swi_var可以在开关去

0

如果你使用jQuery,这将是一块蛋糕:

var selectedValue = $('#spanNav-row').val(); 
switch (selectedValue) { 
    // Your switch body here. 
} 
+0

你可以用JavaScript完成同样的事情,不需要jQuery膨胀:'document.getElementById (“id_of_select”)value;'。 – 2011-07-10 18:40:09

+0

是的,我同意@Matt,但真正的应用超出了这个范围,为什么不加入jQuery? –

+0

jQuery很棒,但在这种情况下,OP没有提及它, “这是一个非常直接的答案,不需要它... – nnnnnn