Html Internet Explorer中属性“accept”的字段过多
我想指定可以上载谁的文件,例如,仅证书。在Firefox和Chrome中,这种行为是可以的,但当我尝试在IE中指定文件类型时,有两个附加字段:图像和html。为什么?我想把它们拿走 代码是:Html Internet Explorer中属性“accept”的字段过多,html,Html,我想指定可以上载谁的文件,例如,仅证书。在Firefox和Chrome中,这种行为是可以的,但当我尝试在IE中指定文件类型时,有两个附加字段:图像和html。为什么?我想把它们拿走 代码是: 由于IE用户可以通过选择“所有文件”来添加其他格式,甚至可以从其他浏览器添加其他格式,因此我建议您使用javascript和jquery对用户添加文件后添加的文件类型进行检查。下面的代码检查用户是否添加了具有您接受的扩展名之一的文件,如果没有,则会发出消息提醒,用户必须再次选择文件 代码: JSFiddl
由于IE用户可以通过选择“所有文件”来添加其他格式,甚至可以从其他浏览器添加其他格式,因此我建议您使用javascript和jquery对用户添加文件后添加的文件类型进行检查。下面的代码检查用户是否添加了具有您接受的扩展名之一的文件,如果没有,则会发出消息提醒,用户必须再次选择文件 代码: JSFiddle: 资料来源:
看看@CBroe——这个wiki页面已经过时了,它甚至在顶部有一个关于它的警告。英文版更好:为什么我有额外的字段图像和Html?我没有在任何地方指定它们。但它们是存在的。
// 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>