Html ';接受';输入元素的属性无效

Html ';接受';输入元素的属性无效,html,cross-browser,html-input,Html,Cross Browser,Html Input,我在html中遇到了一个浏览文件对话框控件标记,该标记是 <input id="myfile" name="myfile" type="file" accept="application/pdf"/> 但“accept”属性似乎没有任何效果。我正在使用Internet Explorer 8。根据w3schools(),任何主要浏览器都不正确支持“accept”属性。“文件浏览器”对话框中的过滤器将不起作用 您可以在form onsubmit事件上使用javascript验证来验

我在html中遇到了一个浏览文件对话框控件标记,该标记是

<input id="myfile" name="myfile" type="file" accept="application/pdf"/>


但“accept”属性似乎没有任何效果。我正在使用Internet Explorer 8。

根据w3schools(),任何主要浏览器都不正确支持“accept”属性。“文件浏览器”对话框中的过滤器将不起作用


您可以在form onsubmit事件上使用javascript验证来验证文件类型是否正确,否则返回false。

浏览器似乎无法遵循此处的IANA规范:

在我的例子中,application/pkcs*媒体类型根本不起作用,而出于某种原因,application/x-pkcs12在chrome中起作用,在IE中部分(.p12)起作用。Firefox似乎完全被忽略了

我还发现这里的讨论更为乐观

因此,最好的描述应该是“对于不常见的格式可能不受支持”,在我的例子中,x-pkcs与pkcs的混淆或多或少是不可用的。

Delimiter

我可以在一些现代浏览器中确认,如果要显示文件对话框类型,需要使用逗号作为分隔符:

<input accept="image/apng, image/jpeg, image/png" name="example" type="file" />


我在页面中看不出主要浏览器如何不支持它。@BehnazChangizi问题和答案都有5年以上的历史了,答案不再正确。大多数主流浏览器,包括IE 10+,现在都支持
accept
,并且它是HTML5规范的一部分。2015年12月仍然没有得到正确的支持。例如,我尝试接受字体文件。我为“accept”属性提供以下逗号分隔的MIME内容类型列表:“application/font-tdpfr、application/font-woff、application/x-font-bdf、application/x-font-ghostscript、application/x-font-linux-psf、application/x-font-otf、application/x-font-pcf、application/x-font-snf、application/x-font-ttf、application/x-font-type1”。对话框打开时,“文件类型”下拉列表中列出的唯一项目是“所有文件”和“WOFF文件(.WOFF)”。所以它完全坏了。就在2年前,讨论的焦点是一个不断变化的“标准”,以及只有一个浏览器Chrome如何实现支持,甚至不一致。