【问题标题】:How to javascript validate <input type=file multiple> if browser does not support multiple [duplicate]如果浏览器不支持多个 [重复],如何 javascript 验证 <input type=file multiple>
【发布时间】:2016-08-12 14:14:31
【问题描述】:

我正在使用:

<input type='file' name='pac1[]' multiple>

我如何通过 javascript 验证至少选择了一个文件?

使用时:

<input type='file' name='pac1'>

验证单个非数组条目没有问题。

【问题讨论】:

  • this.files.length ?

标签: javascript file validation input


【解决方案1】:

你可以使用:

<input id="upload" type='file' name='pac1[]' multiple>

还有 JS:

if(document.getElementById("upload").files.length < 1)
{
   alert("No file selected");
   return false;
}

【讨论】:

  • 这行得通。谢谢。
  • 发现了一个问题。如果浏览器(比如IE8)不支持多怎么办?然后脚本在该长度检查上失败。
  • 除了查看浏览器是否支持之外,还有其他解决方案吗?
【解决方案2】:

使用addEventListenerinput type='file'元素上绑定change事件

INPUTElement.files.length 将返回所选文件的数量。

document.querySelector('[name="pac1[]"]').addEventListener('change', function() {
  alert(this.files.length);
});
&lt;input type='file' name='pac1[]' multiple&gt;

【讨论】:

  • 如果没有选择文件,则不会触发更改事件 :-) ("验证至少有一个文件被选择" )
  • @Kaiido,真的! :P 我没有考虑过“验证” :(
猜你喜欢
  • 2013-11-21
  • 2015-10-10
  • 2012-04-28
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多