2015-12-21 2 views
-1

В моей форме у меня есть различные поля, включая (ввод и выбор), в котором я хочу проверить любое пустое поле и предотвратить ajax-вызов, если какое-либо из поля пуст и сосредоточиться на пустых полях. пока я пытаюсь таким образом, он предупреждает, но также делает вызов ajax.избегать отправки, если любое поле пустое Axax

$('#submit').click(function() { 
    $('input').each(function() { 
     if (!$(this).val()) { 
      alert('Some fields are empty'); 
      return false; 
     } 
    }); 
    event.preventDefault(); // using this page stop being refreshing 

    $.ajax({ 
     type: 'POST', 
     url: "<?php echo site_url(''); ?>/shipment/create_shipment", 
     data: $('form').serialize(), 
     cache: false, 
     success: function(data) { 
      $('#F_id').val(''); 
      $('#v_id').val(''); 
      $('#shp_no').val(''); 
      $('#shipDate').val(''); 
      $('#sup').val(''); 
      $('#sup-quantity').val(''); 
      $('#box').val(''); 
      $('#box-quantity').val(''); 
      $("#sup").prop('disabled', true); 
      $("#sup-quantity").prop('disabled', true); 
      $("#box").prop('disabled', true); 
      $("#box-quantity").prop('disabled', true); 
      $('.alert-success').fadeOut(200).show(); 
      $('.alert-danger').fadeOut(200).hide(); 

      /// alert('form was submitted'); 
     }, 
     error: function(data) { 
      $('.alert-success').fadeOut(200).hide(); 
      $('.alert-danger').fadeOut(200).show(); 
     } 
    }); 
}); 

ответ

1

В return false возвращается из each функции, а не функции click.

Попробуйте использовать переменную bool, обозначающую действительную, и верните false, если нет.

var valid = true; 
e.prevent.preventDefault(); // e being event variable in submit 
$('input').each(function() { 
    if(!$(this).val()){ 
     alert('Some fields are empty'); 
     valid = false; 
     return false; 
    } 
}); 
if(!valid) return false; 
//..... 

Надеюсь, это поможет.

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