使用jquery验证文件上载控制

使用jquery验证文件上载控制,jquery,Jquery,如何使用jquery验证asp.net文件上载控件。 我需要验证两件事,文件上传不应该是空的,当用户点击确定按钮,它应该只包含excel和csv文件 请帮助。您可以在扩展上验证 $('form').submit(function(event) { var file = $('input[type=file]').val(); if ( ! file) { alert('The file is required.'); event.preve

如何使用jquery验证asp.net文件上载控件。 我需要验证两件事,文件上传不应该是空的,当用户点击确定按钮,它应该只包含excel和csv文件


请帮助。

您可以在扩展上验证

$('form').submit(function(event) {
   var file = $('input[type=file]').val();       

   if ( ! file) {
       alert('The file is required.');
       event.preventDefault();
       return;
   } 

   if (file.match(/\.(?:csv|xl)$/)) {
       alert('CSV or Excel files only!');
       event.preventDefault();
   }

});
…或者您可以在mime类型上进行验证

$('form').submit(function(event) {
   var file = $('input[type=file]').prop('files')[0];

   if ( ! file) {
       alert('The file is required.');
       event.preventDefault();
       return;
   } 

   var mime = file.type;

   if (mime != 'text/csv' || mime != 'application/vnd.ms-excel') {
       alert('CSV or Excel files only!');
       event.preventDefault();
   }

});
当然,您也需要在服务器上进行验证,这段代码只是对支持JavaScript的用户的一种礼貌

另外,选择比
alert()
更好的选项。它们不是最方便用户报告错误的方式。

您可以使用插件来为您报告错误:

$(document).ready(function() {
    $("#form").validate({
        rules: {
            MyFile: {
                required: false,
                accept: "jpg|jpeg|png|gif"
            }
        }
    });

    $("#submit").click(function() {
        var file = $('#MyFile').val();

        if($("#create_form").valid()) {
            if(file != '') {
               // do something
            }
        }
    });
});

我会在其中添加一个名为
test.zxl
的文件match@alex精神病?在第二个例子中,我会测试以确保有任何从
$('input[type=file]').prop('files')
firsthi-alex返回的控件,这是我使用的按钮和文件上传控件。我使用了上面提到的第一个代码,将[type=file]替换为[type=fileupload],然后单击按钮需要更改的内容。当我点击按钮时,什么都没有firing@chinnu我使用的选择器是通用的。需要更改它们以适合您的标记。@chinnu表单和文件输入的选择器。