IE没有清除选择值

bol*_*llo 2 javascript jquery internet-explorer

我正在使用一个简单的jquery来清除表单中select的内容,但在iE所有版本中,select都没有清除.它在FF中没问题,只是不在IE中执行.任何人都可以看到我在哪里出错?我已经发布了相关的代码部分.谢谢

更新:

我想要实现的是当提交表单时,输入被清除,并且select /选项返回到默认状态,就像页面加载时一样.

如果能帮助其他人,请回答:$("select").prop('selectedIndex',0);

/*Show submitted*/
//$(".done").show(500).slideUp(300).delay(800).fadeIn(400);
$(".done").html("<div id=\"boxSuccess\">Message sent successfully!</div><br />");
/*Clear input values*/
$("input").val("");
/*Clear slelect values*/
$("select").val("");
$(".done").fadeIn(4000).fadeOut(4000);
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 6

单选<select>元素不能真正被"清除"; 其中一些<option>必须展示.您可以做些什么来确保(例如)显示的第一个选项是

$('select').get(0).selectedIndex = 0; // or $('select').prop('selectedIndex', 0);
Run Code Online (Sandbox Code Playgroud)

编辑 - 看看jQuery(1.5.2)源代码告诉我,当搜索到的值无法找到选项的值(或者,如果没有"value"属性,文本)时,则设置"selectedIndex"为-1.一个快速的jsfiddle应该显示IE中有什么影响.

再次编辑 - 快速测试表明IE没有注意"selectedIndex"被设置为-1.

更多 是一个相关的jQuery错误报告.就个人选择下拉列表而言,我个人认为这不是一个真正的错误.对于多选我可以看到一个参数,尽管它总是可以这样做:

$('select option').prop('selected', false);
Run Code Online (Sandbox Code Playgroud)

取消选择多选中的所有内容.但是,对于单选元素不起作用,因为这并不是真的有意义.该元素将始终使其中一个选项的值与表单一起提交,因此除非其中一个选项具有空值,否则它实际上无法"清除".

甚至更多 - 如果您的某个选项具有"defaultSelected"属性(或属性),那么您可以使其成为所选选项:

$('select option').each(function() {
  this.selected = this.defaultSelected;
});
Run Code Online (Sandbox Code Playgroud)