Bonjour,
j'ai une fonction avec un argument, et j'aimerais que cet argument soit concaténer entre une méthode et une propriété, comme ceci:
Code:
1
2
3
4
5
6
7 function fn (arg) { document.getElementById ('id').arg.value }
Version imprimable
Bonjour,
j'ai une fonction avec un argument, et j'aimerais que cet argument soit concaténer entre une méthode et une propriété, comme ceci:
Code:
1
2
3
4
5
6
7 function fn (arg) { document.getElementById ('id').arg.value }
Bonjour,
tu peux préciser un peu plus ce que tu veux obtenir ?
Parce qu'à part une erreur de syntaxe, je vois pas grand chose, moi :mrgreen:
ton element avec id = 'id' à un attribut arg ? mais après ... ???
comme Ebzz je mettrais plutot ça sur le compte d'une syntaxe approximative ...
C'était juste un exemple. Quand j'essais de concaténer une variable ça me met cette erreur:
et le code en question est celui-là:Citation:
Erreur : document.getElementById("form").input has no properties
Fichier source : file:///home/sebastien/www/test/test.js
Ligne : 231
document.getElementById ('form') étant le formulaire et input l'argument contenant le nom d'un champ.Code:
1
2
3
4
5
6
7 function date (input) { if (rgxp.test (document.getElementById ('form').input.value) == false) { [....]
un id form qui aurait un attribut inout ...
Je crois vraiment que tu es sur la mauvaise piste...
dis nousplutot ce que tu cherche à faire ...
input c'est quoi ?
à l'aveuglette :
???Code:document.forms['form'].Elements['input'].value
Dans mon fichier XHTML:
Dans mon fichier JS:Code:
1
2
3
4
5
6
7
8
9 <form method="post" id="form"> <div> <input type="text" name="champ1" id="champ1" /><br /> <input type="text" name="champ2" id="champ2" /><br /> <input type="submit" name="envoyer" value="Envoyer" /> </div> </form>
et ensuite j'appelle la fonction:Code:
1
2
3
4
5
6
7 function date (input) { if (rgxp.test (document.getElementById ('form').input.value) == false) { [....]
C'est plus clair?Code:
1
2 document.getElementById ('form').champ1.addEventListener("keyup", date ("champ1"), true);
En gros je veux utiliser cette fonction pour plusieurs champs, c'est pour ça que je mets le nom de l'input en argument.
EDIT:
Si on transforme mon code ça donne ça (sachant que j'ai le premier champ de mon formulaire en argument):
Code:
1
2
3
4
5
6
7 function date (input) { if (rgxp.test (document.forms [0].elements [0].value) == false) { [....]
Si tu veux utiliser le nom de ta variable input comme propertyGetter, il faut que tu fasse
BaseObject[input] équivalant à BaseObject.value si input vaut "value"
Bonjour,
Je répèterais aujourd'hui pour la deuxième fois que le name est deprecaded. Il faut passer par les id.
D'autant que document.forms[x] c'est la pire technique qui existe.
*Citation:
D'autant que document.forms[x] c'est la pire technique qui existe.
Ha ?
une argumentaiton s'impose ...
C'est simple, on doit séparer les couches en programmation, et conserver une certaine abstraction entre les deux, si on s'appuie sur les identifiants, tant que le formulaire qui porte l'identifiant est présent dans la page aucun problème.
Avec l'autre méthode, si on commence à ajouter des formulaires des bugs peuvent apparaitre. Dans tous les cas, se baser sur le numéro des éléments dans la page, est trop abstrait pour être solide.
Un peu comme si vous cibliez un élements avec son numéro de childNode, le moindre retour de ligne en plus ou un moins dans le code cassera la page.