2012-08-07 48 views
0

this thread中,描述了如何使用JavaScript从下拉框中获取选定的值。我一直试图按照该线程中的说明进行操作,但一直未能实现。无法使用JavaScript在下拉框中获取选定的值

这是我想要做的一个最小(非工作)的例子。代码应该从下拉框中打印第二个选项的值,但是在第11行的Chrome的JavaScript控制台Uncaught TypeError: Cannot read property 'options' of null(即,当我定义第二个变量时)中出现以下错误。

<html> 
    <body> 
    <select name='a_drop_down_box'> 
     <option value='1'>One</option> 
     <option value='2' selected='selected'>Two</option> 
     <option value='3'>Three</option> 
    </select> 
    <p id='message'></p> 
    <script type="text/javascript"> 
     var test = document.getElementById("a_drop_down_box"); 
     var testValue = test.options[test.selectedIndex].value; 
     document.getElementById('message').innerHTML=testValue; 
    </script> 
    </body> 
</html> 

回答

3
document.getElementById("a_drop_down_box"); 

你有没有注意到,你有没有为选择项中定义的ID?

name属性用于标识使用表单发送的请求的表单元素。你应该使用一个id从dom中检索它。

或者,如果你选择驻留在表单中,你可以这样做:

document.getElementById("myForm").elements["a_drop_down_box"]; 
1

你忘了给您的<select>id属性。

<html> 
    <body> 
    <select id='a_drop_down_box' name='a_drop_down_box'> 
     <option value='1'>One</option> 
     <option value='2' selected='selected'>Two</option> 
     <option value='3'>Three</option> 
    </select> 
    <p id='message'></p> 
    <script type="text/javascript"> 
     var test = document.getElementById("a_drop_down_box"); 
     var testValue = test.options[test.selectedIndex].value; 
     document.getElementById('message').innerHTML=testValue; 
    </script> 
    </body> 
</html> 
1

下拉的name属性是“a_drop_down_box” - 你调用它认为这是它的id

任何时候当你得到一个'...未定义'的错误,它意味着你认为你正在处理的对象(或元素,你的情况)还没有找到。因此,在想知道为什么会出现错误之前,请始终确认此事在你的情况,你可以做:

alert(test); //undefined - no element found with that ID 
1

你忘了ID添加到您选择的标签

var e = document.getElementById("a_drop_down_box"); 
var strUser = e.options[e.selectedIndex].value; 

将返回2.如果你想Two,那么这样做:

var e = document.getElementById("a_drop_down_box"); 
var strUser = e.options[e.selectedIndex].text; 

下面是一个简单的例子 http://jsfiddle.net/VCerV/3/

相关问题