Passer d'un champ à un autre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Passer d'un champ à un autre

par Truc » 01 nov. 2007, 12:52

pas certain de comprendre car ca ne fonctionne pas, j'ai essayer plusieurs manière, voisi ma dernière tentative.
Un peu normal je suppose... tu n'as pas récopié les bons paramètres et un attribut (ici id) est toujours entre guillemets.

par auclairp » 31 oct. 2007, 20:38

Bonjour,

Voila en simplifié un exemple que je viens de faire qui fonctionne:
<form>
<input type="text" name="champ1" id="champ1" onkeyup="if (this.value.length>=6) document.getElementById('champ2').focus();" />
<input type="text" name="champ2" id="champ2" onkeyup="if (this.value.length>=6) document.getElementById('champ3').focus();" />
<input type="text" name="champ3" id="champ3" onkeyup="if (this.value.length>=6) document.getElementById('champ4').focus();" />
<input type="text" name="champ4" id="champ4" onkeyup="if (this.value.length>=6) document.getElementById('champ5').focus();" />
<input type="text" name="champ5" id="champ5" onkeyup="if (this.value.length>=6) document.getElementById('champ6').focus();" />
<input type="text" name="champ6" id="champ6" onkeyup="if (this.value.length>=6) document.getElementById('champ7').focus();" />
<input type="text" name="champ7" id="champ7" onkeyup="if (this.value.length>=6) document.getElementById('champ8').focus();" />
<input type="text" name="champ8" id="champ8" onkeyup="if (this.value.length>=6) document.getElementById('btn_envoi').focus();" />
<input type="submit" id="btn_envoi" value="Envoyer" />
</form>

Génial merci ca fonctionne très bien...

par @rthur » 31 oct. 2007, 20:00

Bonjour,

Voila en simplifié un exemple que je viens de faire qui fonctionne:
<form>
<input type="text" name="champ1" id="champ1" onkeyup="if (this.value.length>=6) document.getElementById('champ2').focus();" />
<input type="text" name="champ2" id="champ2" onkeyup="if (this.value.length>=6) document.getElementById('champ3').focus();" />
<input type="text" name="champ3" id="champ3" onkeyup="if (this.value.length>=6) document.getElementById('champ4').focus();" />
<input type="text" name="champ4" id="champ4" onkeyup="if (this.value.length>=6) document.getElementById('champ5').focus();" />
<input type="text" name="champ5" id="champ5" onkeyup="if (this.value.length>=6) document.getElementById('champ6').focus();" />
<input type="text" name="champ6" id="champ6" onkeyup="if (this.value.length>=6) document.getElementById('champ7').focus();" />
<input type="text" name="champ7" id="champ7" onkeyup="if (this.value.length>=6) document.getElementById('champ8').focus();" />
<input type="text" name="champ8" id="champ8" onkeyup="if (this.value.length>=6) document.getElementById('btn_envoi').focus();" />
<input type="submit" id="btn_envoi" value="Envoyer" />
</form>

par auclairp » 31 oct. 2007, 19:26

pas certain de comprendre car ca ne fonctionne pas, j'ai essayer plusieurs manière, voisi ma dernière tentative.

Code : Tout sélectionner

<script type="text/javascript"> function tab(obj,nextobj,mlength) { if(!mlength) mlength = obj.size; if(obj.value.length>=mlength){ obj.value = obj.value.substr(0,mlength); nextobj = parseInt(obj.id) + 1; if(document.getElementById(nextobj)) document.getElementById(nextobj).focus(); } </script>
<form name="multiloan" action="multiloan.php" method="post">
<table border="0" align="center" class="loan">
	<tr>
		<td class="code">Code DVD</td>
											  
	</tr>
	<tr>
		<td class="code-form">	<input class="code" type="text" name="code[]" id=1 size="15" onkeyup="tab(this,this.multiloan.2,6)" ><br>
								<input class="code" type="text" name="code[]" id=2 size="15" onkeyup="tab(this,this.multiloan.3,6)" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" id=3 size="15" onkeyup="tab(this,this.multiloan.4,6)" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" id=4 size="15" onkeyup="tab(this,this.multiloan.5,6)" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" id=5 size="15" onkeyup="tab(this,this.multiloan.6,6)" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" id=6 size="15" onkeyup="tab(this,this.multiloan.7,6)" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" id=7 size="15" onkeyup="tab(this,this.multiloan.8,6)" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" id=8 size="15" maxlength="6" value="">
		</td>
		<td>			

par Truc » 31 oct. 2007, 10:08

passe par un "id" unique pour chaque élément. id=1; id=2; id=3...
L'appel donnerai
onkeyup="tab(this,6)"
function tab(obj,mlength)
{
   if(!mlength) 
      mlength = obj.size;
   if(obj.value.length>=mlength){
      obj.value = obj.value.substr(0,mlength);

    nextobj = parseInt(obj.id) + 1; 
    if(document.getElementById(nextobj))
       document.getElementById(nextobj).focus();
}

par auclairp » 31 oct. 2007, 05:20

j'ai oublier une ptite partie du code

Code : Tout sélectionner

function tab(obj,nextobj,mlength){ if(!mlength) mlength = obj.size; if(obj.value.length>=mlength){ obj.value = obj.value.substr(0,mlength); nextobj.focus(); }

Passer d'un champ à un autre

par auclairp » 31 oct. 2007, 05:12

Bonjour j'ai un formulaire où l'on retrouve 8 fois le même champ (pouvoir entrer 10 fois des information différente ayant le même identifiant dans ma BDD sous la même requête.

Il fonctionne très bien, l'information que j'y entre est un code numérique composé de 6 chiffres, j'aimerais faire en sorte que après avoir entré le 6ème chiffre, il passe automatiquement au champ suivant et encore le 6ème chiffre pour le champ suivant et ainsi de suite.

C'est unpeu de paresse je le sais, le TAB ou prendre la sourie n'est pas difficile mais bon....

j'ai regadé sur le web pour cela,

Code : Tout sélectionner

onkeyup="tab(this,this.form.INPUT NAME,6)"

Voici mon code:
<input class="code" type="text" name="code[]" onkeyup="tab(this,this.form.code[],6)" size="15"><br>
								<input class="code" type="text" name="code[]" size="15" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" size="15" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" size="15" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" size="15" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" size="15" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" size="15" maxlength="6" value=""><br>
								<input class="code" type="text" name="code[]" size="15" maxlength="6" value="">
Comme vous le voyer pour les besoins de le requête en PHP tous les INPUT ont comme NAME code[] , dan sla source du code que j'avais trouvé je devais y mettre le nom du INPUT à diriger le curseur, J'ai essayer de changer mon code[] pour un autre nom fictif que j'ai intégré dan sla commande onkeyup et ca fonctionnair (bien sure pas la requête php, mais une fois de retour au code[] il ne change plus de ligne, il n'arrête même pas à 6 caractères.

Pouvez vous m'aider
Merci