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)
单选<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)
归档时间: |
|
查看次数: |
2077 次 |
最近记录: |