2017-02-06 2 views
0

Загружает изображение, но перенаправляет его на UploadImage.cshtml. Таким образом, очевидно, ev.preventDefault не работает. Есть ли решение для этого без того, чтобы я прошел через blueimp или xhtml? Потому что я не готов прикасаться к этим материалам.Загрузка изображения Ajax, ev.preventDefault(); не работает

HTML 
<form method="post" action="UploadImage.cshtml" id="imgUploadForm" class="imgUpload" enctype="multipart/form-data"> 
        @FileUpload.GetHtml(
         initialNumberOfFiles:1, 
         allowMoreFilesToBeAdded:false, 
         includeFormTag: false, 
         uploadText:"Upload")    
        <input type="submit" name="buttonUpload2" value="Upload" /> 
       </form> 

Jquery

$(function() { 
      $('.imgUpload').submit(function (ev) { 

       var frm = $(this); 
       Upload(frm); 
       ev.preventDefault(); 
      }); 
     }); 

     function Upload(frm) { 
      $.ajax({ 
       type: frm.attr('method'), 
       url: frm.attr('action'), 
       data: new FormData(frm), 
       success: function (data) { 
        alert('Success'); 
       }, 
       error: function() { 
        alert('Error'); 
       } 
      }); 
     } 
+0

Я думаю ev.preventDefault(); должен быть первым утверждением тела метода. – dpaksoni

+0

Я пробовал это. Тогда форма вообще не отправляется. – Npandit

ответ

0

решаемые с последующим Jquery кода. Thanks

$(document).ready(function (e) { 
      $('.imgUpload').on('submit', (function (e) { 
       e.preventDefault(); 
       var formData = new FormData(this); 

       $.ajax({ 
        type: 'POST', 
        url: $(this).attr('action'), 
        data: formData, 
        cache: false, 
        contentType: false, 
        processData: false, 
        success: function (data) { 
         alert('success'); 
        }, 
        error: function (data) { 
         alert('error'); 
        } 
       }); 
      })); 
     }) 
Смежные вопросы