2016-11-23 5 views
-1

チェックを行い、フォームを送信するjQueryコードに問題があります。ポストデータを送信しないフォーム

total_hours_for_payperiodが40未満の場合、フォームは送信されますが、投稿データは送信されません。 PHPで投稿データを使用しようとすると、私はできません。

注:event.preventDefault();を削除すると機能します。しかし、私の関数は非同期なので、この行が必要です!

誰かが私を助けることができますか?

$("#form_add_entry").submit(function(event) { 
    event.preventDefault(); 

    var data = $(this).serialize(); 
    $.ajax({ 
     type: "POST", 
     dataType: "text", 
     url: "<?=site_url('timesheet/get_hours_for_current_payperiod/')?>", 
     cache : false, 
     data: {data: data}, 
     success: function(resp) { 
      var a = parseInt(JSON.parse(resp)); 

      var entry_hours = parseInt($("#form_add_entry").find('#totalhours').val()) 
      var total_hours_for_payperiod = entry_hours + a 

      if (total_hours_for_payperiod > 40) { 
       $('#biweeklystaffopenovertime').find('#total_remaining').html(total_hours_for_payperiod - 40) 
       $("#addbiweeklytime").modal('hide'); 
       $("#biweeklystaffopenovertime").modal('show'); 
      } else { 
       // Post data isn't submitting, but the form does submit 
       $("#form_add_entry").unbind().submit(); 
      } 
     } 
    }); 
}); 
+0

var data = $(this).serialize();結果を検査します。おそらくあなたの問題があります。なぜそれがevent.preventDefault()なしで動作するかは、フォームが通常のフォームのようにサブジェクト以外の方法で送信されることです。 – jannej

答えて

-1

試してみてください...これは偽を返し、実際のフォームを送信することはできませんが、あなたはあなたのajaxのことをすることができます。

<form onsubmit="return form_to_submit(); ">Your form.... </form> 
    <script> 

    function form_to_submit(){ 
     var data = $(this).serialize(); 
$.ajax({ 
type: "POST", 
dataType: "text", 
url: "<?=site_url('timesheet/get_hours_for_current_payperiod/')?>", 
cache : false, data: {data: data}, success: function(resp) { var a = parseInt(JSON.parse(resp)); 
var entry_hours = parseInt($("#form_add_entry").find('#totalhours').val()) ; 
var total_hours_for_payperiod = entry_hours + a; 
if (total_hours_for_payperiod > 40) { 
$('#biweeklystaffopenovertime').find('#total_remaining').html(total_hours_for_payperiod - 40) ; 
$("#addbiweeklytime").modal('hide'); 
$("#biweeklystaffopenovertime").modal('show'); 
} else { 
// Post data isn't submitting, but the form does submit 
$("#form_add_entry").unbind().submit(); 
} } 
}); 
return false; 
} 
</script> 
関連する問題