2015-12-21 66 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

each功能,而不是click功能return false回报。

尝试让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; 
//..... 

希望这会有所帮助。