11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'ai une page qui contient un formulaire. Après avoir validé, les visiteurs peuvent encore revenir sur le formulaire pour modifier les contenus déjà entrés sur simple clic sur un bouton
onclick="javascript:history.back(-1)" 


Mais la plupart des cas, cette fonction présente des surprises car on se trouve souvent sur un formulaire à nouveau vide. J'ai résolu ce problème avec PHP (utilisation de session).

Maintenant, un autre problème survient: comment remettre à zéro toutes les valeurs du formulaire ? Ou plus précisément, comment vider tous les champs du formulaire ? Car un bouton <input type="reset" value="Effacer"> n'efface pas la valeur par défaut que j'ai introduit grâce au code PHP du type:
<input type="text" name="nom" value=" <? if (isset($_SESSION['nom'])) echo $_SESSION['nom']; ?>" />

Modifié par cowboy (11 Jul 2005 - 21:09)
Le DOM est ton ami Smiley cligne

Basiquement :

<input type="text" id="machin" value="bidule" />
<input type="button" value="effacer" onclick="effacer();" />

<script type="text/javascript">
function effacer()
{
  document.getElementById('machin').value = '';
}
</script>

Smiley smile
Modifié par Jep (11 Jul 2005 - 20:00)
Merci bcp,
c'est resolu:
- pour ne pas traiter les éléments du formulaire un à un,
- pour éviter que la fonction efface aussi les valeurs inscrits sur le bouton,
- pour "remettre à zéro" les valeurs des liste <select> et bouton radio...

j'ai utilisé plutôt une fonction du type:

<script type="text/javascript">
<!--
function effacer(formulaire){
for (var i=0; i<formulaire.length; i++){
if (formulaire.elements[i].type=="radio" || formulaire.elements[i].type=="checkbox") {formulaire.elements[i].checked=false;}
else if (formulaire.elements[i].type=="select-one") {formulaire.elements[i].options[0].selected=true;}
else if (!(formulaire.elements[i].type=='reset' || formulaire.elements[i].type=='submit' || formulaire.elements[i].type=='button')) {formulaire.elements[i].value="";}
}
}
//-->
</script> 

Le bouton qui fera l'affaire

<input type="reset" onclick="effacer(this.form); return false;">


A ceux qui passeront ici, ces liens vous éviteront bcp de questions...
http://aliasdmc.free.fr/coursjavas/cours_javascript96.html
http://www.rdjm.net/Outils/selfhtml/javascript/objets/elementshtml.htm

Ciao ciao, merci à Jep ![/i][/i][/i][/i][/i][/i][/i][/i][/i]
Gatsu35 a écrit :
Ho du Javascript de 1995, dom is your friend dont forget that please

Tu as d'autres solutions mieux que ça ?