Javascript IE未清除选择值
我使用一个简单的jquery来清除表单中select的内容,但是在iE的所有版本中,select并没有被清除。在FF中没有问题,只是在IE中没有做。有人能看到我在这方面哪里出了问题吗?我已经发布了代码的相关部分。谢谢 更新: 我试图实现的是,当提交表单时,输入被清除,选择/选项返回到默认状态,就像加载页面时一样 回答是否对其他人有帮助:$(“选择”).prop('selectedIndex',0)Javascript IE未清除选择值,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,我使用一个简单的jquery来清除表单中select的内容,但是在iE的所有版本中,select并没有被清除。在FF中没有问题,只是在IE中没有做。有人能看到我在这方面哪里出了问题吗?我已经发布了代码的相关部分。谢谢 更新: 我试图实现的是,当提交表单时,输入被清除,选择/选项返回到默认状态,就像加载页面时一样 回答是否对其他人有帮助:$(“选择”).prop('selectedIndex',0) /*显示已提交*/ //$(“.done”).show(500)、slideUp(300)、del
/*显示已提交*/
//$(“.done”).show(500)、slideUp(300)、delay(800)、fadeIn(400);
$(“.done”).html(“消息已成功发送!
”);
/*清除输入值*/
$(“输入”).val(“”);
/*清除slelect值*/
$(“选择”).val(“”);
$(“.done”).fadeIn(4000)。fadeOut(4000);
单个选择
元素不能真正“清除”;必须显示其中的一些
。您可以做什么来确保(例如)显示第一个选项
$('select').get(0).selectedIndex = 0; // or $('select').prop('selectedIndex', 0);
edit—查看jQuery(1.5.2)源代码可以知道,当无法找到搜索到的值作为选项的值(或者,如果没有“value”属性,则为文本)时,它会将“selectedIndex”设置为-1。一个快速的jsfiddle应该显示它在IE中的作用
再次编辑-a表示IE不注意“selectedIndex”设置为-1
更多是一个相关的jQuery错误报告。就个人而言,我不认为这是一个真正的错误的情况下,一个单一的选择下拉列表。对于multi-select,我可以看到一个参数,但始终可以执行以下操作:
$('select option').prop('selected', false);
取消多选中的所有选择。但是,对于单个选择元素不起作用,因为这同样没有意义。元素将始终导致其一个选项的值随表单一起提交,因此除非其中一个选项的值为空,否则无法“清除”
更重要的是,如果您的一个选项具有“defaultSelected”属性(或属性),则可以使用以下选项使其成为选定选项:
$('select option').each(function() {
this.selected = this.defaultSelected;
});
$(“选择”).val(“”)
只应设置为选中的值为“
”的项目。如果要实际删除这些项,则需要类似于$(“选择选项”).remove()的内容代码>,因为我认为您正在设置对象集合的值。
我会这样做:
$("select").add("input").each(function(){
$(this).val("");
});
而不是
/*Clear input values*/
$("input").val("");
/*Clear slelect values*/
$("select").val("");
只有当您有一个值为“”的选项并且这是您要将select重置为的选项时,此选项才有效(显然)。像
<option value=''>Select a value</option>
选择一个值
空字符串真的是
下的
标记的值吗?@pointy抱歉,你明白你的评论吗?感谢将
值设置为“”意味着,“使值为“”的
成为当前选择。“.val()方法已经知道如何对集合进行操作;换句话说,它内置了一个“each()”循环。因此,这种方法是不必要的。我在IE中尝试了这种方法,效果很好。我总是在IE上使用该代码,没有任何问题。这完全删除了列表。我只需要在提交表格时出示死亡名单。此工程为$(“输入”).val(“”);在IE$(“select”).val(“”)中;这不适用于.IIRC,element.selectedIndex=-1
应该适用于IE的所有受支持版本。(编辑:确实如此-)@Andy E是的,我同意,尽管我已经有一段时间没有尝试过了。我正在启动我的IE虚拟机以检查:-)@Andy E嗯,它在IE8中对我不起作用。。。尝试使用多个
并确保没有一个具有空值,如@pointy这似乎是多选择元素上不同浏览器的问题。我的印象是,在我运行的jQuery1.6中,现在有了这个元素的标准?嗯,还需要进一步挖掘。一定是答案。我不敢相信这个问题仍然存在。有一个简单的解决方法——自己设置“selectedIndex”。
<option value=''>Select a value</option>