Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2298 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Question sur form.elements[indice]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question sur form.elements[indice]

n°557126
heffer
PDG du Site des Mains
Posté le 02-11-2003 à 21:48:27  profilanswer
 

Bonjour,
 
J'ai fait la fonction suivante:

function testvaleur(indice,valeur)
{
if (!isnumeric(valeur))
  {
  alert("Veuillez indiquer une quantité supérieure à zéro." );
  form.elements[indice].value="";
  form.elements[indice].focus();
  }
else if (form.elements[indice].value=="" )
  form.elements[indice].value=0
}


 
Elle permet de contrôler qu'un champ texte est numérique (avec une fonction isnumeric). Cependant avec cette fonction je suis obligé de donner l'indice du champ qui est le numéro d'ordre dans la liste des objets du formulaire. Ici l'indice est 1 par exemple:

<input name="X" type="text" size=4 value=0 onblur='javascript:testvaleur(1,this.value)'>


 
Comment éviter de donner l'indice? Peut-on faire la même fonction à partir du nom du champ?
Merci :hello:

mood
Publicité
Posté le 02-11-2003 à 21:48:27  profilanswer
 

n°557230
gm_superst​ar
Appelez-moi Super
Posté le 03-11-2003 à 00:49:43  profilanswer
 

Oui, en ajoutant un attribut "id" (identique à ton "name" ) :
 

<input id="X" ...>


 
puis pour accéder à l'élément :  
 

eldocument.getElementById("X" );


 
C'est la méthode standard du DOM d'accès aux éléments.
 
Donc pour résumer :
 

function testvaleur(idChamp) {
 
champ = document.getElementById(idChamp);
 
if (!isnumeric(champ.value)) {
  alert("Veuillez indiquer une quantité supérieure à zéro." );
  champ.value="";
  champ.focus();
} else if (champ.value=="" )
  champ.value=0;
}
 
<input name="X" id="X" type="text" size=4 value=0 onblur="testvaleur('X');">


 
Tu constateras qu'il est inutile de passer la valeur en paraètre.


Message édité par gm_superstar le 03-11-2003 à 00:50:35

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°557231
youdontcar​e
Posté le 03-11-2003 à 00:50:20  profilanswer
 


<input type="text" size=4 value=0 onblur='javascript:testvaleur(this)'>
 
function testvaleur(n)  
{  
 if (!isnumeric(n.value))  
 {  
  alert("Veuillez indiquer une quantité supérieure à zéro." );  
  n.value="";  
  n.focus();  
 }  
 else if (n.value=="" )   n.value=0;
}

n°557232
gm_superst​ar
Appelez-moi Super
Posté le 03-11-2003 à 00:51:16  profilanswer
 

Oui c'est encore mieux en passant 'this' en paramètre ;)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°557991
heffer
PDG du Site des Mains
Posté le 03-11-2003 à 18:57:35  profilanswer
 

Merci!! :)
J'avais essayé avec this mais je ne devais pas utilisé la bonne syntaxe!


Message édité par heffer le 03-11-2003 à 18:58:06

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Question sur form.elements[indice]

 

Sujets relatifs
Petite question idiote sur requete sqlModifie un form de fournisseur de mail pour pas entrer login/pass
Question sur les tableau en java ...[analyse] question de compréhension sur un cour de MERISE 2
[html/css] question pour un tableau!Question variable.
[PHP] Algo : trouver les éléments pas commun à deux tableauxBeanShell - question.
Question pour un batchQuestion bête au sujet de mail en php...
Plus de sujets relatifs à : Question sur form.elements[indice]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR