通过jquery中的数组进行多文件上载验证

时间:2015-10-11 19:16:32

标签: javascript php jquery ajax twitter-bootstrap

以下代表我的脚本代码

<script>
        $(document).ready(function (){    
            $("#checkfields").click(function (){

                var file1=$("#file1").val();
                if(file1){                        
                    var file_size=$('#file1')[0].files[0].size;
                    if(file_size<2097152){
                        var ext = $('#file1').val().split('.').pop().toLowerCase();                            
                        if($.inArray(ext,['jpg','jpeg','gif'])===-1){
                            alert("Invalid file extension");
                            return false;
                        }

                    }else{
                        alert("Screenshot size is too large.");
                        return false;
                    }                        
                }else{
                    alert("fill all fields..");         
                    return false;
                }
            });
        });
    </script>

以下代表我的代码

<form action="checkmobile.php" method="post" enctype="multipart/form-data" class="form-horizontal"> 
<div class="form-group">
                        <label for="element-13" class="control-label col-lg-2">Add Screenshots</label>
                        <div class="input-group">                            
                            <input type="file" id="file1" name="file[]" class="btn" multiple="multiple">
                        </div>
                    </div>
<div class="form-group">

                                <input type="submit" id="checkfields" class="btn btn-primary  col-lg-offset-2" value="Add">
                                <button class="btn btn-default col-lg-offset-1">Cancel</button>
                            </div>
                </form>

现在我想知道如何在jQuery中使用数组来验证输入下的所有选定文件。

如果我选择一个图像和一个视频,则必须检查图像和视频的验证。首先,如果图像正常,它将验证图像,然后它将通过无效扩展拒绝视频。

我想在提交按钮时验证所有文件,如果图像无效则返回错误,如果有图像选择了视频,那么它也会返回错误。

请帮忙。

1 个答案:

答案 0 :(得分:2)

尝试使用以下代码 -

<script>
    $(document).ready(function (){    
        $("#checkfields").click(function (){
            //var modelname=$("#inputmodelname").val();
            for (var i = 0; i < $("#file1").get(0).files.length; ++i) {
                var file1=$("#file1").get(0).files[i].name;

                if(file1){                        
                    var file_size=$("#file1").get(0).files[i].size;
                    if(file_size<2097152){
                        var ext = file1.split('.').pop().toLowerCase();                            
                        if($.inArray(ext,['jpg','jpeg','gif'])===-1){
                            alert("Invalid file extension");
                            return false;
                        }

                    }else{
                        alert("Screenshot size is too large.");
                        return false;
                    }                        
                }else{
                    alert("fill all fields..");         
                    return false;
                }
            }
        });
    });
</script>

它会单独验证所有选定的文件。我已经评论了你的modelname变量行,如果&#39;条件,因为我无法在HTML中找到与其相关的任何元素。