Internet Explorer 中 <Input> 属性“accept”的多余字段
Posted
技术标签:
【中文标题】Internet Explorer 中 <Input> 属性“accept”的多余字段【英文标题】:Excess fields of <Input> attribute "accept" in Internet Explorer 【发布时间】:2017-06-24 18:43:44 【问题描述】:我想指定我可以上传哪些文件,例如仅证书。在 Firefox 和 Chrome 中,这种行为是可以的,但是当我尝试在 IE 中指定文件类型时,有两个附加字段:图像和 html。为什么?我想删除它们。
代码是:
<input accept=".cer,.pem,.der" id="certRegField" name="user_cert" type="file">
【问题讨论】:
看看***.com/questions/2505334/… @CBroe — 那个 wiki 页面已经过时了(它甚至在顶部有一个警告)。英文版更好:developer.mozilla.org/en/docs/Web/HTML/Element/Input 为什么我有附加字段“图像”和“Html”?我没有在任何地方指定它们。但它们是存在的。 【参考方案1】:由于 IE 中的某个人可以通过选择“所有文件”添加另一种格式,甚至是其他浏览器中的格式,我建议您添加一个检查在用户添加文件后添加的文件类型,使用javascript和jquery。下面的代码检查用户是否添加了具有您接受的扩展名之一的文件,如果没有,它会提醒一条消息并且用户必须再次选择一个文件。
代码:
// To add the jquery library:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
// HTML:
<input accept=".cer,.pem,.der" id="certRegField" name="user_cert" type="file">
// Javascript:
<script type="text/javascript">
$(function()
$('#certRegField').change(function()
var url = $(this).val();
var ext = url.substring(url.lastIndexOf('.') + 1).toLowerCase();
if (!(ext == "cer" || ext == "pem" || ext == "der"))
document.getElementById("certRegField").value = "";
alert("Unaccepted file format, try again.");
);
);
</script>
JSFiddle:http://jsfiddle.net/stN8U/222/
来源:
linking jquery in html onchange file input change img src and change image color【讨论】:
以上是关于Internet Explorer 中 <Input> 属性“accept”的多余字段的主要内容,如果未能解决你的问题,请参考以下文章
CSS:不是 Internet Explorer 的解决方法
innerHTML 删除 Internet Explorer 中的属性引号
在 Internet Explorer 中播放 HTML 音频?
.InnerHTML 在 Internet Explorer 中无法正常工作