2009-08-05 21 views
1

je suis remise à zéro ma forme ce qui suit:Remise à zéro un formulaire avec JavaScript

<script type="text/javascript"> 

window.onload = function() { 
document.getElementsByName("email_address")[0].value = ""; 
document.getElementsByName("remove")[0].value = "off"; 
} 



</script> 

le problème est que la case à cocher « supprimer » semble se réinitialiser avant que le script côté serveur peut fonctionner. Donc, en fait, tout ce que l'utilisateur a sélectionné dans la case est remplacé et désactivé avant que le script php puisse être exécuté. Cependant, la boîte d'entrée "email_address" est très bien ...

le test ...

//this is already set to OFF by the time we get here....even if the user may have ticked the checkbox to ON 
echo $HTTP_GET_VARS['remove']; 

//this is fine, the email_address input is read and not reset... 
echo $HTTP_GET_VARS['email_address']; 

quelqu'un peut-il expliquer cela? Je veux évidemment que le formulaire soit réinitialisé APRÈS le traitement de mon script côté serveur, mais pour une raison quelconque, il réinitialise la case à cocher tôt, mais la boîte d'entrée est ok ...

merci!

+0

Si vous réinitialisant la forme tout simplement mettre un sous la forme. –

+0

Je pense que la chicane fait une réinitialisation automatique après la soumission, pas une initiative de l'utilisateur. – Amber

+0

oui, parce que le formulaire renvoie une pile de messages comme "votre email a été ajouté avec succès" ou "erreur, votre email est invalide" etc, je suis sortie ces piles d'erreur sur la même page que le formulaire, donc après un message de pile été générée je souhaite effacer la forme – chicane

Répondre

1

essai avec les éléments suivants au lieu de

hors
document.getElementsByName("remove")[0].checked = false; 

acclamations

+0

merci pour le conseil, mais malheureusement, cela n'a pas fonctionné :( – chicane

+0

j'ai essayé tous ces conseils aujourd'hui encore et celui-ci s'est avéré fonctionner pour moi maintenant, je vous remercie. Je pense que j'étais trop fatigué hier à mettre en œuvre la solution correctement: o – chicane

3

Je suis vraiment confus. Vous dites que vous ne voulez pas que le formulaire soit effacé avant de renvoyer une valeur post-soumission (faites-vous ici un formulaire ajax?), Mais l'exemple de code que vous avez posté est défini pour s'exécuter lorsque la page est chargée. Bien sûr il va se réinitialiser avant un envoi a lieu. Au lieu de cela, vous devez le configurer pour qu'il s'exécute lorsque l'envoi du formulaire est terminé et que vous avez la réponse attendue.

Et ne vous inquiétez pas de réinitialiser manuellement chaque élément de formulaire, utilisez simplement la méthode à la place.

+0

Salut merci pour le pourboire, pouvez-vous me dire comment je voudrais procéder à l'exécution de la réinitialisation javascript après la soumission du formulaire est terminée? merci – chicane

+0

Bien sûr, mais vous devez d'abord partager comment vous soumettez le formulaire Modifier votre question d'origine pour inclure un exemple de code de la façon dont vous déclenchez la soumission du formulaire. –

1

Pourquoi pas seulement ...

document.forms[0].reset(); 
Questions connexes