2010-11-21 9 views
1

En ce moment j'ai une configuration de panier de base. Lorsqu'un utilisateur entre ses informations, je veux écrire ces données dans un fichier XML. Pour ce faire, j'ai utilisé la méthode POST de soumettre le formulaire. Cependant, je veux seulement soumettre ce formulaire pour qu'il soit sauvegardé s'il répond aux conditions (comme utiliser une expression régulière pour s'assurer qu'aucune lettre ne se trouve dans le numéro de téléphone).Soumettre uniquement si une condition est remplie?

Ma forme est comme ceci:

<form action= "confirmation.php" name="memberData" method="post"> 
     <input name="textField" id="textField"></input> 
     <input type="submit" name="submitbutton" id="submitbutton" onclick="submitIt()" value="Submit Button"/> 
    </form> 

donc ce que je veux est d'appeler cette fonction SubmitIT() qui vérifie si les données sont valides. Si c'est valide alors je veux effectuer mon action de forme. Sinon, je souhaite qu'il ne soit pas redirigé tant que l'utilisateur n'a pas corrigé ses informations saisies. À l'heure actuelle, il alerte correctement l'utilisateur d'un champ incorrect, mais immédiatement après il redirige et enregistre l'information de toute façon.

Existe-t-il un moyen d'effectuer uniquement une action de formulaire si elle remplit certaines conditions?

+0

Examinez la validation de formulaire. Validez les zones de texte avant de poster ... http: //www.javascript-coder.com/html-form/javascript-form-validation.phtml –

Répondre

5

Ce que vous voulez faire ici est d'empêcher l'action par défaut de l'événement, dans votre soumission de formulaire. Pour faire cela, le gestionnaire doit retourner false. Pour que cela fonctionne, vous devez changer le gestionnaire de onClick du bouton submit à onSubmit du formulaire. Vous pouvez également lire quelques informations sur les événements ici http://www.quirksmode.org/js/introevents.html.

2

Vous devez arrêter le traitement du formulaire en annulant l'événement en cours de traitement. Voir this example. Notez que cela ne fonctionnera évidemment pas si JavaScript est désactivé, vous devez donc effectuer ces vérifications côté serveur et gérer l'erreur de validation de manière appropriée côté serveur.

+0

Donc, pour que cela fonctionne, je devrais passer un appel à cancelEvent() dans mon submitIt () fonction? – user494216

1

Jetez également un coup d'œil sur les nombreux plugins JQuery pour cela.

http://plugins.jquery.com/plugin-tags/form-validation

Après avoir passé quelques exemples simples et obtenir tout inclus correctement dans la page, la validation du formulaire devient très facile et flexible à travers tous vos sites.

En outre, je vois vraiment le besoin de validation côté client sans que l'utilisateur ne quitte la page, mais n'oubliez pas que vous devez toujours désinfecter et vérifier les champs de formulaire lorsque le formulaire est soumis. Un utilisateur mal intentionné peut simplement désactiver JavaScript pour valider sa validation ou un utilisateur qui court avec NoScript ne réalisera même pas qu'une validation est en cours.

4

Vous pouvez faire quelque chose comme ceci:

<form ... onsubmit="return submitIt();"> 

submitIt() est une fonction javascript qui retourne true si elle est valide, false si invalide.