Ich habe ein Problem mit einigen jQuery-Code, der eine Überprüfung durchführen soll und dann das Formular absenden.Formular keine Post-Daten senden
Das Problem ist, dass, wenn die total_hours_for_payperiod
weniger als 40 ist dann das Formular übermittelt, aber es keine Post-Daten übermittelt. Wenn ich versuche, Post-Daten in PHP zu verwenden, kann ich das nicht.
Hinweis: Es funktioniert, wenn ich event.preventDefault();
entfernen! Aber ich brauche diese Zeile, weil meine Funktion asynchron ist!
Kann mir jemand helfen?
$("#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();
}
}
});
});
Untersuchen Sie das Ergebnis von var data = $ (this) .serialize(); Wahrscheinlich hast du dein Problem. Warum es ohne event.preventDefault() funktioniert, kann sein, dass das Formular wie ein normales Formular, der Non-Ajax-Weg, übermittelt wird. – jannej