使用javascript或jQuery清除IE中的选定选项

时间:2012-02-09 22:39:15

标签: javascript jquery html

想象一下这个HTML代码

<html>
<head>
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function clear_form() {
  $("select#block_id").find("option").removeAttr("selected");
}
</script>
</head>
<body>
<form>
<select id="block_id" name="block_id">
<option value=""></option>
<option value="1">1 Peach Road</option>
<option value="2" selected="selected">Bethnal Green Estate</option>
<option value="3">Ley Street</option>
<option value="4">Ogilby Street</option>
</select>
<input type="reset" onclick="clear_form()" value="Clear"/>
<input type="submit"/>
</form>
</html>

在Firefox中打开此页面时,按“清除”按钮将重置所选选项。 但这在IE中不起作用,浏览器不会引发任何错误,但仍然显示没有选择的选项。 问题是因为我们有'option value =“2”selected =“selected”'html代码,看起来IE不会清除它总是出现在页面上的这个选择。 获得原生javascript或jQuery 1.5.2解决方案会很棒。 有什么建议吗?

2 个答案:

答案 0 :(得分:7)

您可以使用JavaScript重置select以指向其第一个option元素。

使用jQuery ......

$('#block_id').prop('selectedIndex', 0);

...无

document.getElementById('block_id').selectedIndex = 0;

答案 1 :(得分:0)

似乎重置按钮是恢复IE中的值的原因。

  

重置按钮会将所有表单字段重置为其初始值

在您的情况下,最初选择了选项2,因此保留了该值。

  1. 将按钮类型更改为按钮而不是重置
  2. 更改Alex帖子中的清除功能。

    document.getElementById('block_id').selectedIndex = 0;