Sam*_*bhi 15 javascript file-io internet-explorer cross-browser
我怎样才能在IE中重置文件输入,我使用了以下内容,它在chrome和FF中工作,但不是IE
fileInputElement.value=""
IE中的替代品是什么?
mVC*_*Chr 17
如果fileInputElement在表单中独立fileInputForm,您可以:
window.fileInputForm.reset();
Run Code Online (Sandbox Code Playgroud)
否则对于IE,你必须用克隆替换元素:
fileInputElement.parentNode.replaceChild(
fileInputElement.cloneNode(true),
fileInputElement
);
Run Code Online (Sandbox Code Playgroud)
以下代码适用于jQuery.它适用于每个浏览器,并允许保留事件和自定义属性.
var $el = $(fileInputElement);
$el.wrap('<form>').closest('form').get(0).reset();
$el.unwrap();
Run Code Online (Sandbox Code Playgroud)
有关代码和演示,请参阅此jsFiddle.
@Gyrocode.com 在 vanilla JS 中的跨浏览器解决方案:
var clearFileInput = function (input) {
if (!input) {
return;
}
// standard way - works for IE 11+, Chrome, Firefox, webkit Opera
input.value = null;
if (input.files && input.files.length && input.parentNode) {
// workaround for IE 10 and lower, pre-webkit Opera
var form = document.createElement('form');
input.parentNode.insertBefore(form, input);
form.appendChild(input);
form.reset();
form.parentNode.insertBefore(input, form);
input.parentNode.removeChild(form);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23470 次 |
| 最近记录: |