2012-01-12 82 views
4

如何确保至少有一个字段使用jQuery具有选定的文件?这里是我的形式:使用jQuery验证至少1个文件输入已完成

<form action="b.php"> 
    <input type="file" name="file[]"> 
    <input type="file" name="file[]"> 
    <input type="file" name="file[]"> 
    <input type="file" name="file[]"> 
    <input type="submit" value="Value"> 
</form> 
+2

您在标题中提出一件事,在文本中提出另一件事。 – kontur 2012-01-12 10:41:48

+0

我认为他意味着验证(输入元素与)文件类型。 – 2012-01-12 10:43:53

回答

3

要达到此目的,您可以使用map()构建所有有效文件input元素的数组。然后你可以检查这个数组是否有任何元素。如果是这样,那么至少有一个输入是有效的,如果它是空的,则没有选择任何输入。虽然你当然需要服务器端验证,也有一些不错的技巧,以检查是否有人在添加文件到您的输入元素

var validFields = $('input[type="file"]').map(function() { 
    if ($(this).val() != "") { 
     return $(this); 
    } 
}).get();  

if (validFields.length) { 
    console.log("Form is valid"); 
} else { 
    console.log("Form is not valid"); 
} 

Example fiddle

+0

完美! +1 :) – SagarPPanchal 2016-12-05 07:05:10

0

你可以使用jQuery的.val()方法来检查是否值已确定,但我不知道这是否适用于文件输入类型。

但是,您应该使用服务器端语言来验证您的文件,因为如果您使用的是JavaScript,浏览页面的人可能会禁用验证。只需循环访问file[]数组并检查它是否为空。

这实际上更安全也更容易。

0

:试试这个。

现在,由于安全原因,您对文件输入元素的访问受到严格限制,因此您无法对其进行更改。但是,您可以检查以下内容:

if($('input[type="file"]').val() != "") { 
    alert("a file is selected") 
}