如何从JavaScript </select>更改<select>值

时间:2012-02-28 22:38:34

标签: javascript html

我有一个问题似乎很简单,但我无法做对。我有一个<select>,其中包含选项列表和默认值。用户选择一个选项并单击按钮后,我希望select返回其默认值。

<select id="select">
 <option value="defaultValue">Default</option>
 <option value="Option1">Option1</option>
 <option value="Option2">Option2</option>    
</select>
<input type="button" value="CHANGE" onclick="selectFunction()" />

因此,假设用户选择了选项1.我使用javascript获取该值但在此之后,我希望select再次显示“Default”。

我发现做document.getElementById("select").value = "defaultValue"无效。

有谁知道如何将该值更改回默认值?

10 个答案:

答案 0 :(得分:53)

.value设置为其中一个选项的值适用于所有模糊的当前浏览器。在非常旧的浏览器上,您曾经必须设置selectedIndex

document.getElementById("select").selectedIndex = 0;

如果这个和原始代码都不起作用,我想知道你是否可能正在使用IE并在页面上创建一些名为“select”的东西 else ? (作为name还是作为全局变量?)因为some versions of IE have a problem它们将名称空间混淆在一起。尝试将选择的id更改为“fluglehorn”,如果可行,您就知道这就是问题所在。

答案 1 :(得分:9)

  

我发现做document.getElementById("select").value = "defaultValue"无法正常工作。

您必须遇到一个单独的错误,因为这可以在live demo中正常工作。

以下是您感兴趣的完整工作代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Demo</title>
    <script type="text/javascript">
        var selectFunction = function() {
            document.getElementById("select").value = "defaultValue";
        };
    </script>
</head>
<body>
    <select id="select">
        <option value="defaultValue">Default</option>
        <option value="Option1">Option1</option>
        <option value="Option2">Option2</option>    
    </select>
    <input type="button" value="CHANGE" onclick="selectFunction()" />
</body>
</html>

答案 2 :(得分:8)

document.getElementById("select").selectedIndex = 0将有效

答案 3 :(得分:4)

在selectFunction()中完成处理后,您可以执行以下操作

document.getElementById('select').selectedIndex = 0;
document.getElementById('select').value = 'Default';

答案 4 :(得分:4)

$('#select').val('defaultValue'); 
$('#select').change();

这也会触发连接到此选择

的事件

答案 5 :(得分:3)

如果您希望它返回第一个选项,请尝试:

   document.getElementById("select").selectedIndex = 0;

答案 6 :(得分:2)

 <script language="javascript" type="text/javascript">
        function selectFunction() {
             var printStr = document.getElementById("select").options[0].value
            alert(printStr);
            document.getElementById("select").selectedIndex = 0;
        }
    </script>

答案 7 :(得分:2)

我想我知道这里的问题是什么 - 如果你试图让它选择一个不存在的选项,它就行不通。您需要先添加选项。像这样:

var option=document.createElement("option");
option.text=document.getElementById('other_referee').value
document.getElementById('referee_new').add(option,null);
document.getElementById('referee_new').value = document.getElementById('other_referee').value;

不优雅,但你明白了。

答案 8 :(得分:1)

您可以使用selectedIndex属性将其设置为第一个选项:

document.getElementById("select").selectedIndex = 0;

答案 9 :(得分:1)

这解决了我的问题,可以正常工作

var value = item[index].id;
$("#select2").val(value);

但未显示所选值,所以

$("#select2").val(value).change();

对我来说很好。