11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

J'ai déjà posté sur LeSiteDuzero mais malgré le nombre élevé de visiteur, personne ne semble pourvoir me répondre ... je pensais pourtant ma question des plus simple. Smiley ohwell
En fait j'utilise une fonction javascript dont une fonction contient ceci :


if(document.enterprises_products_familys.family_name.value == '')


J'aimerais simplement remplacer "enterprises_products_familys" et "family_name" par des variables "a" et "b" (prédéfinis auparavant, ça je sais faire Smiley langue ) ... tout simplement. J'ai bien essayé le code ci-dessous, mais sans succès. C'est sans-doute un simple problème de concaténation;


if(document.a.b.value == '')


Merci d'avance aux personnes qui pourront m'aider. Smiley smile
Bonne soirée. Smiley smile
Modifié par Gaylord.P (03 Oct 2008 - 20:40)
bonsoir

je verrais bien un truc du genre


var a =null;
var b = null;

function getValueA()
{
return a;
}

function getValueB()
{
return b;
}

function setValueA(untel)
{
 a = untel;
}
function setValueB(deutel)
{
b = deutel;
}

if(document.getValueA().getValueB()="...")
....


... pas testé Smiley cligne
Bonsoir,
Eh bien... non
Quand on met directement un "mot" derrière un objet, ce mot est attendu en tant que propriété/méthode, donc
document.a -> erreur, pas de propriété a
document.getValue() -> erreur, pas de méthode getValue

Si on veut que la variable soit interprétée, il faut passer par les crochets :
document[a][ b].value


edit : ajouté une espace devant b], bbcode oblige

a+
Modifié par jeje (02 Oct 2008 - 21:34)
tu as tout a fait raison jeje ...et j'ai tout à fait tort Smiley lol

flanagan a écrit :

l'opérateur . (point ) attend un objet comme opérande de gauche et un identifiant (un nom de propriété) comme opérande de droite.
L'opérande de droite ne doit pas être une chaîne ou une variable contenant une chaîne Smiley rolleyes .
il doir être le nom littéral de la propriété ou de la methode, sans guillemet d'aucune sorte


l'opérateur est une exception à la règle en javascript :
a écrit :


La plupard des opérateurs autorisent des expressions arbitraires pour chaque opérandes, dans la mesure où le type de l'opérande est approprié.
L'opérateur point (.) est une exception Smiley biggol


ben je m'en rappellais pas .. et encore moins de ce qu'a souligné @jeje
a écrit :

l'opérateur [ ] autorise l'accès aux propriété d'objet sans les restrictions que l'opérateur . (point) place sur l'opérande de droite.
.....
Si le premier opérande de l'opérateur [ ] est une référence à un objet, le second opérande serait une expression qui s'évalue à une chaîne qui nomme une propriété de l'objet.
..


ben j'aurai révisé comme cela
merci @jeje
Smiley cligne
Modifié par kzone (02 Oct 2008 - 23:24)
Oh ben c'est rien Smiley confused

En passant, ça ressemble à s'y méprendre à un accès à un élément de formulaire donc autant passer par la notation classique :
document.forms['enterprises_products_familys'].elements['family_name'].value

Et de la même manière, si a et b contiennent les deux valeurs :
document.forms[a].elements[ b].value


voilà, bonne nuit les gens
Merci beaucoup pour toutes ces informations. Je débute en Javascript et tes conseils m'aident beaucoup. Tout fonctionne parfaitement. Smiley smile

Encore merci. Smiley smile
Modifié par Gaylord.P (03 Oct 2008 - 20:39)