2 votes

Problème AJAX lié à la soumission d'un formulaire en jQuery

Il est évident qu'il me manque quelque chose avec jQuery, la soumission de formulaires et AJAX. Le back-end PHP et l'encodage JSON fonctionnent bien. Mais lorsque le formulaire est soumis, c'est comme si les données sont soumises deux fois et les valeurs qui entrent dans le formulaire sont null .

Voici mon script :

$(document).ready(function () {
    var validated = $("#loginForm").validate({
        errorLabelContainer: "#errorMessage",
        wrapper: "li",
        rules: {
            username: "required",
            password: "required"
        },
        messages: {
            username: "Please enter your username.",
            password: "Please enter your password."
        },
        submitHandler: function (form) {
            $.ajax({
                type: 'POST',
                url: $(form).attr('action'),
                data: $(form).serialize(),
                dataType: 'json',
                success: function (res) {
                    if (res.err == true) {
                        $("#errorMessage").text(res.msg);
                    } else {
                        window.location = res.url;
                    }
                },
                error: function () {
                    $("#errorMessage").text("There was an error processing form.");
                },
            });
        }
    });
});

0voto

Soc Points 1147

J'ai fait un bricolage et il semble que le code devrait fonctionner. Dans le firebug j'ai vu que la requête est envoyée correctement avec toutes les dates du formulaire. J'ai remarqué que si la propriété dataType est définie, le type de données répondu doit être correct.

http://jsfiddle.net/7vtAw/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X