【问题标题】:Excess fields of <Input> attribute "accept" in Internet ExplorerInternet Explorer 中 <Input> 属性“accept”的多余字段
【发布时间】:2017-06-24 18:43:44
【问题描述】:

我想指定我可以上传哪些文件,例如仅证书。在 Firefox 和 Chrome 中,这种行为是可以的,但是当我尝试在 IE 中指定文件类型时,有两个附加字段:图像和 html。为什么?我想删除它们。

代码是:

&lt;input accept=".cer,.pem,.der" id="certRegField" name="user_cert" type="file"&gt;

【问题讨论】:

标签: 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/

来源:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 2011-09-15
    • 2010-11-16
    • 2018-07-04
    • 2015-05-23
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多