2013-12-09 2 views
0

мне нужно проверить файл на Submit-событие, поэтому я сделал следующее:jquery.ajax - проверить файл на отправить

$(document).ready(function(){ 
    $("form").submit(function(){ 
     data = new FormData(); 
     data.append('picture', $('#picture-field')[0].files[0]); 

     $.ajax({ 
      url: 'checkit.php', 
      data: data, 
      processData: false, 
      cache: false, 
      contentType: false, 
      type: 'POST', 
      dataType: "json", 
      success: function (data) { 
       alert(data.error) 
      } 
     }); 
    }); 
}); 

Но эта работа это не распространяется. возвращенные данные не раздуты, кто-нибудь может мне помочь?

+0

Добавить 'alert', чтобы увидеть, если' событие triggered'. Добавьте «метод ошибки», чтобы убедиться, что правильный URL-адрес. Не уверен, что вам нужно установить 'contentType: false'. Кроме того, ваш 'JSON' действительно? – Spokey

+0

выглядит, что форма submit не предотвращается, что может быть обновлением страницы, возвращает false из метода –

+0

ok и как проверить, установлен ли файл-ввод? – user3080627

ответ

0

Попробуйте предотвращая Действие посылки формы

$(document).ready(function() { 
    $("form").submit(function (e) { 
     //stop the default form submit action 
     e.preventDefault(); 

     var files = $('#picture-field')[0].files; 
     if (!files.length) { 
      alert('select a file') 
      return; 
     } 

     var data = new FormData(); 
     data.append('picture', $('#picture-field')[0].files[0]); 

     $.ajax({ 
      url: 'checkit.php', 
      data: data, 
      processData: false, 
      cache: false, 
      contentType: false, 
      type: 'POST', 
      dataType: "json", 
      success: function (data) { 
       alert(data.error) 
      }, 
      error: function (jqXhr, status, error) { 
       alert(status + ':' + error + ':' + jqXhr.responseText) 
      } 
     }); 
    }); 
}); 
+0

да, правильно, спасибо! – user3080627

Смежные вопросы