2013-08-02 53 views
0

在MVC 4視圖中,我們有一個輸入類型文件作爲圖片控件。上傳圖片導致javascript驗證不顯眼

<input type="file" id="imageUpload" name = "imagetoupload" onchange="readURL(this);" accept="*.jpg,*.gif,*.png,*.jpeg"/> 

當我們提交表單而沒有選擇圖像時,所有驗證(包括JQuery和模型)都成功觸發。

但是,當我們上傳圖片並提交表單時,未激活驗證。我們嘗試在提交點擊時使用以下代碼明確排除圖片上傳的驗證,但沒有任何運氣。

$("#frmRegister").validate({ 
     ignore:"input[type='file']" 
     }); 

任何幫助,高度讚賞。

回答

0

通過將自定義腳本的錯誤

function readURL(input) { 

     var fileExtension = ['jpeg', 'jpg', 'png']; 
     if ($.inArray($(input).val().split('.').pop().toLowerCase(), fileExtension) == -1) { 
      alert('@resourceFactory.GetLocalizedValue(PhraseConstants.InvalidFileType)'); 
      location.reload(); 
      return false; 
     } 

     if (input.files) 
     { 
      if (input.files[0] && input.files[0].size <= GetFileSize()) { 
       var reader = new FileReader(); 
       reader.onload = function (e) { 
        $('#fileToUpload') 
          .attr('src', e.target.result) 
          .width(90) 
          .height(90); 
       }; 
       reader.readAsDataURL(input.files[0]); 
      } 
      else { 
       alert('@resourceFactory.GetLocalizedValue(ImageSizeExceed)'); 
      } 
     } 
    } 
解決它