2014-10-17 90 views
0

我正在使用下面的函數來選擇文件後顯示圖像預覽。
如果文件擴展名eq fileTypes,它應該顯示圖像預覽,但它不。
笏我做錯了嗎?更改jQuery圖像預覽

var previewImage = function(input, block){ 
    var fileTypes = ['jpg', 'jpeg', 'png']; 
    var extension = input.files[0].name.split('.').pop().toLowerCase(); /*se preia extensia*/ 
    var isSuccess = fileTypes.indexOf(extension) > -1; /*se verifica extensia*/ 

    if(isSuccess){ 
     var reader = new FileReader(); 
     reader.onload = function (e) { 
      block.attr('src', e.target.result); 
     }; 
    }else{ 
     alert('Fisierul selectat nu este acceptat!'); 
    } 

}; 

$s(document).on('change', '#image', function(){ 
    previewImage(this, $s('.imagePreview')); 
}); 

這裏是我的意見。

 <div class="control-group form-group"> 
     <label for="image">Imaginea</label> 
     <div id="imagePreview"> 
      <img src="/admin/mmadmin/template/assets/img-upload-150_150.png" class="imagePreview thumbnail" style="max-width:150px; max-height:150px;" /> 
     </div> 
     <input type="file" name="imageFile" id="image" /> 
     </div> 
+1

有沒有在最後一部分$後的「S」的理由? – 2014-10-17 14:59:30

+0

那's'從哪裏來? – 2014-10-17 15:00:20

+0

jQuery衝突 – speedy 2014-10-17 15:04:16

回答

1

工作小提琴:http://jsfiddle.net/8ns1s0zn/1/

好了,所以有幾個問題: 首先是s jQuery的$之後。

$(document).on('change', '#image', function(){ 
    previewImage(this, $('.imagePreview')); 
}); 

然後,你忘了告訴讀者讀取數據:

reader.readAsDataURL(input.files[0]);