使用jquery验证文件上载控件

时间:2011-06-07 06:08:08

标签: jquery

如何使用jquery验证asp.net FileUpload控件。 我需要验证两件事,当用户单击“确定”按钮时,FileUpload不应该为空,并且它应该只包含excel和csv文件。

请帮忙。

2 个答案:

答案 0 :(得分:6)

您可以在扩展程序上验证...

$('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()更好的东西。它们不是报告错误的最用户友好方式。

答案 1 :(得分:2)

您可以让jQuery validation插件为您执行此操作:

$(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
            }
        }
    });
});