Question sur form.elements[indice] - HTML/CSS - Programmation
Marsh Posté le 03-11-2003 à 00:49:43
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) { |
Tu constateras qu'il est inutile de passer la valeur en paraètre.
Marsh Posté le 03-11-2003 à 00:50:20
<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;
}
Marsh Posté le 03-11-2003 à 00:51:16
Oui c'est encore mieux en passant 'this' en paramètre
Marsh Posté le 03-11-2003 à 18:57:35
Merci!!
J'avais essayé avec this mais je ne devais pas utilisé la bonne syntaxe!
Marsh Posté le 02-11-2003 à 21:48:27
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