如果我使用$('form input‘)在IE11中清除一个包含5个或更多字段的表单,.val(“”) IE11将崩溃。HTML:
<form>
<label>1</label><input type="text"/>
<label>2</label><input type="text"/>
<label>3</label><input type="text"/>
<label>4</label><input type="text"/>
<label>5</label><input type="text"/>
</form>
JS:
$(document).ready(function(){
$('#clearFormNormal').click(function(){
$("form input").val("");
});
});
当我使用setTimeout进行递归操作时,它是有效的。
JS:
function clearFields (counter) {
var i = counter || 0, deferred = new $.Deferred();
if ($("form input").eq(i).length === 1){
setTimeout(function(){
$("form input").eq(i).val("");
i = i + 1;
clearFields(i).always(function(){
deferred.resolve();
});
},0);
} else {
deferred.resolve();
}
return deferred.promise();
}
$(document).ready(function(){
$('#clearFormSetTimeout').click(function(){
clearFields();
});
});
另请参阅http://jsfiddle.net/fransoverbeek/Cy5D5/7/
这是一个IE11错误吗?
发布于 2013-12-20 12:24:42
我相信这是IE的一个bug,与jQuery无关,因为你可以通过下面的html页面来显示它,如下所示:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></meta>
<title>test</title>
</head>
<body>
<form id="form_1">
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="text" value="" size="10"/><br/>
<input type="button" value="reset" onclick="document.getElementById('form_1').reset();">
</form>.
</body>
</html>
你可以发现IE 11在你重置窗体后会崩溃。
发布于 2013-12-18 17:44:14
试一试
$(':input',"#" + form.id)
.not(':button, :submit, :reset, :hidden')
.val('');
或
$("#" + form.id)[0].reset();
发布于 2014-02-12 14:46:15
此错误的修复程序已包含在Windows Update上发布的2014年2月IE更新中。
https://stackoverflow.com/questions/20654447
复制相似问题