Jquery检查文件类型输入中的上传文件名

时间:2015-03-31 02:29:02

标签: jquery file file-upload

我试图通过使用JQuery给出的文件名格式检查文件名。

这是我的代码:

<input class="" name="myfile" id="myfile" type="file" multiple="false" data-value="">

我的JQuery脚本:

function checkFileName(filename, file_id){
    var must_filename;

    must_filename = jQuery(file_id).attr('data-value').split('.').slice(0, 2).join('.');
    jQuery('.file_err_det').remove();
    alert(must_filename + ' != ' + filename);
    // filename value is always null?
    if(must_filename != filename){          
        alert('Filename is not valid! Please follow the format and upload it again');
        jQuery(file_id).val('');
    }
}

jQuery('#myfile').blur(function() {
    var this_filename = jQuery(this).val().split('.').slice(0, 2).join('.');
    checkFileName(this_filename, '#myfile');
    alert(this_filename); // this returns null? I dont know why..
});

但似乎值this_filename为空。我正在使用blur,有什么我可以用来检查jQuery('#myfile').val()吗?

1 个答案:

答案 0 :(得分:0)

请参阅Using files from web applications

  

File API可以访问包含File的FileList   表示用户选择的文件的对象。

     

如果用户只选择一个文件,则只需要   考虑列表的第一个文件。

     

使用经典DOM选择器访问一个选定的文件:

     

var selectedFile = document.getElementById('input').files[0];

     

使用jQuery选择器访问一个选定的文件:

     

var selectedFile = $('#input').get(0).files[0];

     

var selectedFile = $('#input')[0].files[0];


尝试使用change事件

&#13;
&#13;
$("#myfile").on("change", function(e) {
  var file = e.target.files[0];
  console.log(file, file.name);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<input class="" name="myfile" id="myfile" type="file" multiple="false" data-value="">
&#13;
&#13;
&#13;