2011-08-12 53 views

回答

1

你只需要拉元素的值:

var fileName = $('#group_document_file').val(); 

var extension = fileName.slice('.')[fileName.slice('.').length - 1].toLowerCase(); 

if(extension == 'jpeg' || extension == 'gif' || extension == 'png') 
    // Show Validated Image 
else 
    alert('Choose a supported image format'); 
+0

當您可以使用regEx時,無需重新分片。看到我的答案。 –

+0

如果您遇到問題並決定使用正則表達式解決問題,現在您有兩個問題。 = D – Tejs

+0

爲什麼呢?恕我直言,regEx的方式是更清潔... –

0

下獲取文件的擴展名:

JS:

$('#group_documents_file').change(function(){ 
    var value = this.value; 
    val = value.split("\\"); 
    var file = (val[val.length - 1]).split('.'); 
    var ext = file[file.length - 1]; 
    alert(ext); 
}) 

小提琴:http://jsfiddle.net/maniator/gveqX/

1

請看這裏:get the filename of a fileupload in a document through javascript關於如何獲取文件名:

var extension = $('#group_documents_file').val().match(/[^.]+$/).pop().toLowerCase(); 

這應該會讓你在文件名後面的任何內容。

編輯:

如果你不想使用正則表達式,我建議採用分體式,與流行:

var extension = $('#group_documents_file').val().split('.').pop().toLowerCase(); 

然後,檢查允許的擴展,請執行以下操作:

if (~$.inArray(extension, ['jpg', 'jpeg', 'gif', 'png'])) { 
    // correct file type... 
} else { 
    // incorrect file type... 
} 
+0

嗨約瑟夫,第一個解決方案不起作用,你需要在regEx之後添加.pop(): var extension = $('#group_documents_file').val()。match(/[^.]+$ 。/)POP()toLowerCase(); – minux

0

試試這個

var fName = $('#group_document_file').val(); 

var validExtns ["jpg", "gif", "png"]; 

var extn = fName.slice('.')[fName.slice('.').length - 1]; 

if($.inArray(extn.toLowerCase(), validExtns) != -1){ 
    // Show Validated Image 
} 
else{ 
    alert('Invalid image format'); 
}