2016-12-27 9 views
1

При создании функции jQuery для отправки формы мне нужно сначала выполнить проверку перед отправкой запроса. Вот мой код:jQuery form Отправить с подтверждением

$('#Form').submit(function(e){ 
    e.preventDefault(); 
    e.stopImmediatePropagation(); 
    var PhotoID = $('#PhotoID').val(); 
    // I will set the PhotoID to 0 just for testing. 
    var PhotoID = '0'; 
    if (PhotoID == '0') { 
     $('#GlobalError').removeClass('hidden'); 
    } else { 
     return true; 
     $.ajax({ 
      type: "POST", 
      url: $(this).attr('action'), 
      data: $(this).serialize(), 
      beforeSend: function(){ 
       $("#loader").fadeIn(2000); 
      }, 
      success: function(response) { 
      } 
     }); 
    } 
}); 

Когда PhotoID отличается от 0 Я хотел бы представить форму и следовать нормальным изменениям страницы, чтобы сформировать атрибут действия. Я знаю, что противоположность e.preventDefault() - return true;, но не работает. Функция запускается правильно. Поэтому проблема заключается в обработке формы.

ответ

1

Используйте return false, чтобы избежать отправки формы

$('#Form').submit(function(e){ 
    var PhotoID = $('#PhotoID').val(); 
    // I will set the PhotoID to 0 just for testing. 
    var PhotoID = '0'; 
    if (PhotoID == '0') { 
     $('#GlobalError').removeClass('hidden'); 
     return false; 

    } else { 

     $.ajax({ 
      type: "POST", 
      url: $(this).attr('action'), 
      data: $(this).serialize(), 
      beforeSend: function(){ 
       $("#loader").fadeIn(2000); 
      }, 
      success: function(response) { 
      } 
     }); 
    } 
}); 

Но никогда не смирится, потому что вы устанавливаете значение PhotoID в 0

+1

Он работал. Я отметил это только для лучшего понимания кода. Я исправлю код для кого-то с таким же вопросом в будущем. спасибо – rgomez

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