Ich bin nicht sehr vertraut mit Jquery. Ich versuche ein Formular zu erstellen, das im Hintergrund gesendet wird, ohne die Seite neu zu laden. Ich habe ein verstecktes div, das auf Klick zeigt und versteckt, innerhalb des div gibt es ein Formular.Jquery Formular einreichen ohne neu zu laden Seite
Ich habe zwei Probleme:
1) Wenn die Form der Validierung fehlschlägt, wird das Formular noch vorgelegt. Ich habe versucht, Validierungs- und Übermittlungscodes in der Bedingung if(validation == valid) { $.ajax.... }
zu setzen, aber es funktioniert nicht richtig.
2) Nachdem das Formular abgeschickt wurde, wird das div automatisch ausgeblendet, so dass keine erfolgreiche Nachricht angezeigt werden kann.
Hier ist der Code:
$().ready(function() {
// validate the form when it is submitted, using validation plugin.
var validator = $("#contactform").validate({
errorContainer: container,
errorLabelContainer: $(),
onkeyup: false,
onclick: false,
onfocusout: false,
errorPlacement: function (error, element) {
error.insertBefore(element);
}
});
});
$(function() {
//this submits a form
$('input[type=submit]').click(function() {
$.ajax({
type: "POST",
url: "contact.php",
data: $("#contactform").serialize(),
beforeSend: function() {
$('#result').html('<img src="loading.gif" />');
},
success: function(data) {
$('#result').html(data);
}
})
})
})
//this shows and hides div onlcick
$(document).ready(function(){
$(".slidingDiv").hide();
$(".show_hide").show();
$('.show_hide').click(function(){
$(".slidingDiv").slideToggle();
});
});
Danke, e.preventDefault den Trick für die Einreichung und Erfolg div tat. – qwaz
Ich möchte die Aktualisierung nach dem Absenden des Formulars verhindern..dieser Code funktioniert nicht richtig –
Dies funktionierte für mich vor Ort. Aber als ich auf meinen gehosteten Server hochgeladen habe, warf der Aufruf .on ("submit", ..) einen undefinierten Fehler auf ... keine Ahnung warum, weil ich denke, dass ich dieselbe Version von jQuery habe, wo auch immer mein Code bereitgestellt wird ?! Ich habe eine Alternative gefunden, um die Zeile folgendermaßen zu aktualisieren: $ ("form"). Submit (function (e) {..}); .. das hat dann gut funktioniert – gnB