3 votes

Jquery overlay ajax form post

Je charge une page externe depuis l'overlay de Flowplayer et j'essaie de soumettre un formulaire dans cette page via ajax, mais cela recharge la page.

Lorsque je navigue directement vers le fichier, tout fonctionne bien, mais lorsque c'est dans l'overlay, cela recharge la page lors de la soumission.

Y a-t-il quelque chose à configurer pour charger le fichier jquery et soumettre via ajax ?

Merci

Voici le code

$(function(){
 $("#JqAjaxForm").submit(function(){
    dataString = $("#JqAjaxForm").serialize();

    $.ajax({
    type: "POST",
    url: "mailto_friend.cfm",
    data: dataString,
    dataType: "json",
    success: function(data) {

        if(data.email_check == "invalid"){
            $("#message_ajax").html("<div class='errorMessage'>Désolé " + data.name + ", " + data.email + " n'est pas une adresse e-mail valide. Réessayez.</div>");
        } else {
            $("#message_ajax").html("<div class='successMessage'>" + data.email + " est une adresse e-mail valide. Merci, " + data.name + ".</div>");
        }

    }

    });

    return false;            

    }); 
 });

 jQuery.ajax Soumission de Formulaire
 NOM:

E-mail:

C'est le code exact et il contient la fonction prête à l'emploi

mes données

$(document).ready(function() {
$("#testForm").submit(sendForm)
});

function sendForm() {
$.post('mypage.cfm',$("#testForm").serialize(),function(data,status){
    $("#result").html(data);
         return false;

});
 return false;
}

1voto

Dan Sorensen Points 4014

Il semble que le problème soit dû au fait d'avoir le code jQuery invoqué avant que le HTML ne soit prêt.

Si vous déplacez votre script en bas du fichier HTML, il fonctionnera bien.

Alternativement, vous pouvez utiliser la méthode jQuery .ready() pour retarder l'exécution.

$(function(){
    $("#JqAjaxForm").submit(function(){
    // votre code de script
    return false;            

    }); 
});

MISE À JOUR: J'envelopperais tout le javascript dans la fonction document ready afin de retarder l'exécution jusqu'à ce que le DOM soit prêt. Je ne peux pas tester plus sans le fichier mailto_friend.cfm.

Document sans titre

From: 
To: 
Message: 

   $(document).ready(function() {
   $("#testForm").submit(sendForm);

   function sendForm() {
       $.post('mailto_friend.cfm',
           $("#testForm").serialize(),
           function(data,status){
               $("#result").html(data);
       });
   alert("Je fonctionne");
   return false;
   }
});

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