2011-10-27 5 views
3

J'utilise un formulaire Jquery sur mon site Web. Le fichier est assez simple avec les champs habituels (nom, email, dob etc.). Après que l'utilisateur appuie sur le bouton de registre, le formulaire est soumis au fichier php en utilisant le paramètre 'ajaxForm' de Jquery. Après cela, le formulaire glisse et la carte Google glisse en demandant au client de sélectionner sa position actuelle en faisant glisser le marqueur sur la carte. Après que le marqueur a été placé à l'endroit requis, le client peut cliquer sur le bouton «Soumettre» et 2 valeurs seront transmises à un autre fichier php: la latitude et la longitude, c'est-à-dire les coordonnées. (Veuillez noter que la page ne se réactualise à aucun moment, tout cela se passe sur une seule page.)Formulaire Jquery obtenu à partir de la valeur du champ

Ce que je veux faire est de passer la valeur du champ email du formulaire précédent avec la latitude et la longitude, mais je peux ' Je fais vraiment ça parce que je suis à peu près un noob au javascript.

Existe-t-il un moyen de déclarer une variable globale à partir du champ 'email' avant de soumettre le formulaire, afin que je puisse l'utiliser plus tard pour passer avec les paramètres de latitude et de longitude. Ou peut-être y a-t-il une solution encore plus facile?

Merci beaucoup d'avance!

est ici le code de ma forme jquery

$(document).ready(function() { 
var options = { 
    target: '#total', 
    clearForm: true, 
    beforeSubmit: radio, 
    success: social1 
}; 
$("#perm").ajaxForm(options); 

}); 
function radio(formData, jqForm, options) { 

    if ($('input:radio').is(':checked')) { 

} else { 
    alert('choose gender!'); 
    return false; 
} 

var form = jqForm[0]; 

     if (form.year.value <= form.yob.value) { 
     alert('choose another year!'); 
     return false; 
    } 

}; 




function social1() { 
      $("#map").delay(700).slideDown("slow"); 
      $("#accordion").slideUp("slow"); 
      }; 

Et voici le code du bouton

<form id='perm' action='add.php?stay=perm' method='post' onSubmit="return checkForm(this);"> 

Répondre

1

Vous utilisez déjà la méthode beforeSubmit. Développez-le un peu. C'est un bon endroit pour attraper l'adresse e-mail. Donc, vous vous retrouvez avec une telle situation (non testé):

var email; 
$(document).ready(function() { 
var options = { 
    target: '#total', 
    clearForm: true, 
    beforeSubmit: radio, 
    success: social1 
}; 
$("#perm").ajaxForm(options); 

}); 
function radio(formData, jqForm, options) { 
    email = $("#idOfEmailField").val(); 
    // ... rest of logic here 
}; 
function social1() { 
    alert("Email address is "+email); 
}; 
+0

parfait, cela a fonctionné parfaitement! Je vous remercie! – mrkrabs

0

Si vous cachez simplement la forme sans rafraîchir la page, l'entrée e-mail de la forme précédente est toujours disponible (vous n'êtes pas obligé de déclarer une variable globale pour stocker l'email). Par exemple,

<form id='perm' action='add.php?stay=perm' method='post'> 
    ... 
    <input type="text" id="name" /> 
    <input type="text" id="email" /> 
    <input type="submit" value="Submit" /> 
    ... 
</form> 

<button id='submitCoordinate_button' style='display:none'>Submit coordinate</button> 

<script type="text/javascript"> 
    $('#perm').ajaxForm() { 
     ... 
     success: function() { 
      $('#perm').hide(); // hide the perm form and pull the map in 
      $('#submitCoordinate_button').show(); 
     }, 
     ... 
    } 

    $('#submitCoordinate_button').click(function() { 
     ... 
     var email = $('#email').val(); // you still can get the email here 
     ... 
    }); 
</script> 
+0

merci ainsi que c'est un conseil très utile! – mrkrabs

Questions connexes