2015-03-31 150 views
0

我试图通过检查使用JQuery给出的文件名格式的文件名..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()

回答

0

参见Using files from web applications

文件API使得能够访问包含文件列表文件表示由用户选择的文件 对象。

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

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

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

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


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

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

尝试利用change事件

$("#myfile").on("change", function(e) { 
 
    var file = e.target.files[0]; 
 
    console.log(file, file.name); 
 
})
<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="">