[JS] savoir si un objet est présent ou pas

savoir si un objet est présent ou pas [JS] - HTML/CSS - Programmation

Marsh Posté le 02-08-2005 à 12:50:37    

Bonjour tous le monde:
 
petite question.
pour une certaine raison,il me faut tester si un objet du style document.form.checkbox ou autre.
existe dans la page ou pas.
mais j'arrive pas à faire le test sans avoir une erreur JS ds le bas de la page IE.
Alors comment faire.
 
 
En vous remerciant d'avance.
 
Xtof...

Reply

Marsh Posté le 02-08-2005 à 12:50:37   

Reply

Marsh Posté le 02-08-2005 à 12:57:12    

Que veux tu faire ?
 
En attendant pour répondre a ta question voila :
Pour tester s'il existe au moins une checkbox dans la page :

Code :
  1. function yatilunecheckboxdanslapage()
  2. {
  3. var input = document.getElementsByTagName('input');
  4. var test = false;
  5. for (var i=0 ; i<input.length && !test; i++)
  6. {
  7.  if (input[i].getAttribute('type') == 'checkbox')
  8.   test = true;
  9. }
  10. return test;
  11. }


Message édité par afbilou le 02-08-2005 à 12:59:23
Reply

Marsh Posté le 02-08-2005 à 13:03:56    

Au début de ma page, jai du mettre un  
<body onload="menu(dviorhoihrh)">
 
Pour une histoire de calque.
Mais sous IE quand je recharge ma page, (qui est à fond dynamique)
si je suis dans un autre cas que celui ou j'ai besoin de l'appel du JS du onload.
Sa me dis...objet non trouvé, logique...

Reply

Marsh Posté le 02-08-2005 à 13:22:54    

Bon merci de ton aide ,
 
mais jai fait 2 -3 autres test,et c'est bon
 
thx!

 
 
Oups finalement, non sa marche pas! :sweat:  :sweat:


Message édité par xtof_83 le 02-08-2005 à 13:50:07
Reply

Marsh Posté le 02-08-2005 à 14:49:45    

file nous le code de ta page histoire de te dire ce qui va po

Reply

Marsh Posté le 02-08-2005 à 16:43:57    

D'une façon générale, en javascript, pour savoir si un objet existe c'est simple :

Code :
  1. if (document.getElementById('toto')) {
  2.   alert("l'objet avec l'id 'toto' existe !" );
  3. }

Reply

Marsh Posté le 02-08-2005 à 17:01:57    

Peu donner le code en entier:
 
Voila le principal:
jai des calques (div avec id tel que "contenu1","contenu2"...etc)
 
lorsque l'utilisateur selectionne une posssibilité dans un select, le calque correspondant apparait!
et tous les autres sont cacher.
 
et ainsi de suite.
 
Lors de la selection, pas de probléme.
 
Lerreur javascript arrive au moment ou l'utisateur veut modifier son choix.
 
je me dois de lui ouvrir le calque correspondant.
jappelle donc la meme fonction qui est dans le select, dans un <body onload="hfureiuf()">
 
Et c'est pourquoi il y a l'erreur par la suite.

Reply

Marsh Posté le 02-08-2005 à 17:13:21    

tu es bête ou tu en fais exprès ?
 
J'ai pas dit l'explication du code, mais le CODE HTML/CSS/JAVASCRIPT DE TA PUTAIN DE PAGE

Reply

Marsh Posté le 02-08-2005 à 17:18:44    

T'énerves pas comme ça gatsusat =) c'est pas de sa faute si c un boulet, il est né comme ça sans doute =)


---------------
Reine des boulets et boulettes - Briseuse de touillettes professionnelle
Reply

Marsh Posté le 02-08-2005 à 17:21:01    

+1
 
Ca donne pas vraiment bonne réputation au forum et ça ne pousse pas le mec à faire des efforts.

Reply

Marsh Posté le 02-08-2005 à 17:21:01   

Reply

Marsh Posté le 02-08-2005 à 17:22:50    

Je suis d'accord avec toi j_lecruel, mais aussi un peu avec gastusat quand même. La moindre des choses quand on pose une question sur le forum est de lire correctement les réponses qu'on nous donne afin de les utiliser et d'y répondre à notre tour au mieux =)


---------------
Reine des boulets et boulettes - Briseuse de touillettes professionnelle
Reply

Marsh Posté le 02-08-2005 à 17:25:58    

Ah mais je serais le premier à dire que c'est pas les boulets qui manquent et qu'à la longue c'est fatiguant. Mais c'est un peu facile de s'énerver...

Reply

Marsh Posté le 02-08-2005 à 17:30:28    

je lui demande le code, et lui il me donne l'explication de son code, faut pas pousser quand même. C'est pas avec l'explication du code que je vais connaitre son problème, je ne suis pas Madame Soleil

Reply

Marsh Posté le 02-08-2005 à 17:37:30    

Mais tu sais que je suis d'accord avec toi...
 
mais reconnais quand même que tu prends vite un ton légèrement (euphémisme) aggressif.

Reply

Marsh Posté le 02-08-2005 à 17:48:00    

depuis le debut d'aprem je demande au mec son code et il est même po foutu de nous le donner.
ICI ça s'appelle Programmation, pas Voyance

Reply

Marsh Posté le 02-08-2005 à 18:37:57    

Tu sais lire ou pas le gros dadet...
 
Je ne peux te le filer!
okay
sa ce comprend.
et si tu es trop bête pour comprendre le pb, et ben tans pis pour toi.
 
Je suis à eclaircir encore plus mes explications, mais je ne peux malgré moi faire mieux.
 
Et puis les "boulets" qui parcourt ce forum, tu as raison j'en rencontre un peu trop!
 

Reply

Marsh Posté le 02-08-2005 à 18:53:37    

xtof_83 a écrit :

Peu donner le code en entier:
[..]


 
 
Pour moi ca veut dire :  
Je peux donner le code entier
 
 
Ensuite tout ce que je demande c'est :  
 
Ouvrir ta page avec ton navigateur favoris
faire : Affichage -> Afficher la source (sous IE)
ou sous FF : Affichage -> code source de la page, ou CTRL+U
 
donc le gros dadet te dit ceci :  
Ici on est sur programmation, on aide à débugger des programmes, on t'aidera à mieux comprendre le code et on t'aidera à corriger ton code.
 
mais sans code, comment veux tu qu'on corrige ton code ?
 
ce que afbilou t'avait donné était la solution idéale. Mais si tu ne veux pas nous donner ton code c'est qu'il y a un problème.
tu ne sais pas faire un copier/Coller du bloc notes sur le forum ?
tu ne peux pas uploader la page sur un serveur ftp ?
tu ne peux pas enregistrer la page HTML et/ou enlever le code qui ne sert à rien et nous donner le code qui te pose problème ?
 
Je ne peux deviner ton problème avec des explications succintes et sans aucun code.
J'aurai du code sous les yeux je te donne tout de suite la solution.
 
si tu veux pour te montrer qu'on peut vérifier l'existance d'un objet en JS regarde le script à cette page :  
http://gatsu.ftp.free.fr/html/scriptMenuauto.html
 
Ok pour dire que mes propos sont agressifs, mais parfois il y a de quoi.

Reply

Marsh Posté le 02-08-2005 à 19:03:35    

et puis vu ton explication :  
JE pencherai un peu pour dire qu'il pourrait y avoir du vieux javascript bancale dans ta page.  
 
Alors si tu arrives à me copier/coller ton code, je m'arrange pour t'aider à l'améliorer grandement

Reply

Marsh Posté le 02-08-2005 à 19:07:38    

Désolé pour la faute d'orthographe, on étais donc mal partit!
 
Heu avant de continuer.
Tu pourrais m'apprendre ce que veux dire FF?
ou CTRL, parce que je suis un peu con!
 
Pas de ce monde.
Non je suis un extra terreste venu posé des questions conne.

Reply

Marsh Posté le 02-08-2005 à 19:10:55    

Tu as l'air sympas.
 
Mais sache donc:
je vais voir ce que je vais mettre comme code.
Deuze, cesse de me parler comme un débile.
j'attaque Master info.
Là sa fait 1 mois que je bosse dans une entreprise de création de site.
ET donc oui je sais faire tous ce que tu mas dis.
Même un peu plus, si les besoins me viennent.
 
Donc on oublie tous sa okay.
et on part d'un meilleur pied?
 
Sa te va?

Reply

Marsh Posté le 02-08-2005 à 19:13:01    

tu en fais exprès ?
jveux juste ton code please please !!! et tu auras une réponse directe, et même du JS débuggué et tout propre, je t'en supplie, file moi ton code.
 
** se met à genoux **
 
PS :  
FF = FireFox, navigateur extraterrestre qui est 100x plus aux normes que Internet explorer (IE)
CTRL = Control, touche située à gauche de la barre espace ou à droite de celle ci.
 
Ca te suffit ?

Reply

Marsh Posté le 02-08-2005 à 19:14:29    

Jvois pas ce qui te gènerai de coller le code ?
Qu'est ce qui t'empêche de coller du code HTML généré ??
C'est quelque chose de top-secret ? ya des infos confidentielles ? ben tu remplace tout par chien/Chat/Tortue


Message édité par gatsusat le 02-08-2005 à 19:15:08
Reply

Marsh Posté le 02-08-2005 à 19:23:40    

Ouais oauis, bon vais voir sa.
 
Merci Pour FF, lespace d'une minute jai cru que tu allé me parlé de Final..Fantasy...
 
mord de rire.
Jaimerais bien êtres con et ne pas comprendre ce que tu me dis.
Mais pas de chance.
 
FF jutilise tous les jours.
Mais les client eux c'est IE et IE est cool car il indique les erreurs javascript...plus chiant:
sa fait moche et client pas content...
 
bon le code:
ferme les yeux:
pourquoi sa marche pas avec les balises [img] lol:

Code :
  1. <body onLoad="menu(1,'','montrer','montrer','div')
  2.    menu_efface('3','');">
  3. <link rel="StyleSheet" href="/admin/install.css" type="text/css" />
  4. <script language="JavaScript1.1" src="/admin/javascript/controles.js" type="text/JavaScript"></script>
  5. <script language="javascript1.1" src="resizable.js" type="text/javascript"></script>
  6. <script language="JavaScript">
  7. function menu()
  8. {
  9. var i,x,tB,j=0,tA=new Array(),arg=menu.arguments;
  10. //alert(arg[1]);
  11.     if(arg[1]=="" && document.form3.champtype.value!=null)
  12.  arg[1]="contenu"+document.form3.champtype.value;
  13. if(document.getElementsByTagName)
  14.  {
  15.  for(i=4;i<arg.length;i++)
  16.   {
  17.   tB=document.getElementsByTagName(arg[i]);
  18.   for(x=0;x<tB.length;x++)
  19.    {
  20.    tA[j]=tB[x]; j++;
  21.    }
  22.   }
  23.  for(i=0;i<tA.length;i++)
  24.   {
  25.   if(tA[i].id==arg[1])
  26.    {
  27.    if(arg[0]==1)
  28.     {
  29.     tA[i].className=(tA[i].className==arg[3])?arg[2]:arg[3];
  30.     tA[i].className=arg[2];
  31.     }
  32.    else
  33.     {tA[i].className=arg[2];}
  34.    }
  35.   }
  36.  }
  37. //document.form1.produits_famille1.options[document.form1.produits_famille1.selectedIndex].value=0;
  38. }
  39. function menu_efface(){
  40. var elems, arg=menu_efface.arguments;
  41. var nbcalque=arg[0];
  42. var nomdiv;
  43. arg[1]="contenu"+document.form3.champtype.value;
  44. for(var i=1;i<=nbcalque;i++)
  45.      {
  46.  nomdiv="contenu"+i;
  47.  if (nomdiv!=arg[1]){
  48.  menu(1,nomdiv,'cacher','cacher','div');
  49.   }
  50.  }
  51. }
  52. </script>


 
sa c le début de la page:
 
tu veux un exemple des calques:

Code :
  1. <div align="left" id="contenu1" class="montrer">
  2.          <table width="100%">
  3. ..........


Message édité par xtof_83 le 02-08-2005 à 19:26:19
Reply

Marsh Posté le 02-08-2005 à 19:26:36    

xtof_83 a écrit :

j'attaque Master info.


Depuis quand c'est une preuve de qualification ou intelligence? [:marc]
 
edit: ah oui, t'as bien l'air de savoir ce que tu fais [:grinking]

Citation :

IE est cool car il indique les erreurs javascript...plus chiant:
sa fait moche et client pas content...


Non, IE indique qu'il y a eu une erreur javascript, et encore c'est quand t'as du bol, mais il n'indique rien qui puisse aider le dev d'une quelconque manière et n'indique même pas l'emplacement réel de l'erreur [:marc]
 
Penser qu'IE a un quelconque intérêt pour débugger du javascript, c'est fumer des pullmols, on débugge mieux à coup d'alert() qu'avec la "console" javascript de MSIE [:marc]
 
Firefox ou Opera affichent l'erreur, avec un message utile et avec la localisation réelle de l'erreur dans le code javascript (plus un lien vers le JS source à l'endroit exact de l'erreur pour FF) [:marc]


Message édité par masklinn le 02-08-2005 à 19:30:41

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 02-08-2005 à 19:28:11    

je veux le HTML complet
tout le HTML
là tu fais du JS mais on sais pas sur quoi tu fais ça.
 
C'est pas compliquer quand même.
HTML et JS
 
au passage FF à une meilleure gestion avancée du JS que IE
Console Javascript  qui te dis à quelle ligne ca déconne, et qui enplus t'évite de te polluer de DialogBox.
Puis il possède le DOM Inspector qui est très intéressant que tu veux scruter la gueule d'une page Web ainsi que faire du JS en mieux.
 
Look le Menu OUTILS (ya la console et l'inspecteur DOM)
 
faudrait faire un tuto sur l'inspecteur DOM, yen a qui sauraient mieux faire du JS et qui comprendraient plus facilement ce qu'ils font bien entendu


Message édité par gatsusat le 02-08-2005 à 19:29:38
Reply

Marsh Posté le 02-08-2005 à 19:30:27    

aide:
 

Code :
  1. menu(1,'','montrer','montrer','div')
  2.                  menu_efface('3','');


cet partit du code est la meme qui est sur mon select
a part que dans le second champ:
 

Code :
  1. menu(1,'<?=$letrucdinamique?>','montrer','montrer','div')
  2.                  menu_efface('3','<?=$letrucdinamique?>');

Reply

Marsh Posté le 02-08-2005 à 19:31:11    

bon tu as pas tout compris toi.
 
Je veux le contenu du formulaire, le select et tous les champs avec lesquels tu fais mumuse
 
et le code HTML Généré complet, tu copie colle TOUT, ou tu up ca sur un FTP, on se débrouillera pas la suite.
 
edit: on fait un concours de Edit Masklinn ?
 
Je passe plus de temps à t'expliquer qu'il me faut tout ton code pour le copier/coller dans un éditeur et pour le débugger  que de débugguer ton code à mon avis


Message édité par gatsusat le 02-08-2005 à 19:34:06
Reply

Marsh Posté le 02-08-2005 à 19:33:37    

Oui oui les gars je sais tous sa...
 
Merci!
Combien de fois va til faloir le répété.
Mon truc est fini, marche parfaitement...
juste ce petit bug...qui géne en rien du tous, car tous marche.
 
je veux juste faire un truc parfais et donc corriger mon code qui doit être un peu light!
 
Une condition, une seul...

Reply

Marsh Posté le 02-08-2005 à 19:34:22    

moauich mouaich, ta pas besoin de plus.

Reply

Marsh Posté le 02-08-2005 à 19:36:17    

Parce que là soit tu fais exprés de me faire chier.
 
Soit tu sais rien du tout...

Reply

Marsh Posté le 02-08-2005 à 19:36:26    

xtof_83 a écrit :


Combien de fois va til faloir le répété.
Mon truc est fini, marche parfaitement...


 
Combien de fois il va falloir te répété que le JS attaque le contenu d'une page Web, le JS tout seul ca vaut rien, il faut ce qu'il  y a dans la page pour qu'on teste et qu'on puisse comprendre.
 
DONC toute la page.
 
et on a oublié de te dire que ton JS est un peu bancale.

Reply

Marsh Posté le 02-08-2005 à 19:41:13    

comment sa bancale?

Reply

Marsh Posté le 02-08-2005 à 19:41:14    

xtof_83 a écrit :

Parce que là soit tu fais exprés de me faire chier.
 
Soit tu sais rien du tout...


 
 
Je ne sais rien, c'est vrai, tiens un exemple de ce qu'on peut faire en JS et proprement :  
http://gatsu.ftp.free.fr/html/MenuDynamique.html
 
JE suis en train de t'expliquer que ton code il me le faut en complet, je ne sais pas moi ce qu'il y a comme éléments html qui sont utilisés dans le script.
 
Ton script de la manière qu'il est utilisé il est bien bancal je trouve.

Reply

Marsh Posté le 02-08-2005 à 19:44:50    

C'est navrant l'ambiance ici ...

Reply

Marsh Posté le 02-08-2005 à 19:45:33    

hum...
 
Ton menu Dynamique sympa, javais le même à faire, sa m'aurais arrangé.
 
Enfin le mien est beaucoup plus élaboré maintenant.

Reply

Marsh Posté le 02-08-2005 à 19:46:55    

ben xtof_83,  
 
je ne sais pas si le tiens est plus élaboré, mais le mien est propre. C'est juste pour te montrer la manière d'utiliser le JS maintenant. Pas de la manière que tu le fais
Désactive le Javascript, et regarde ce qu'il donne ton Menu.

Reply

Marsh Posté le 02-08-2005 à 19:47:09    

afbilou a écrit :

C'est navrant l'ambiance ici ...


 
 
Pff...on discute tranquilement... :hello: bienvenue à toi...

Reply

Marsh Posté le 02-08-2005 à 19:48:05    

afbilou a écrit :

C'est navrant l'ambiance ici ...


 
C'est pas ma faute, il ne veut pas comprendre que il me faut la partie HTML De son code s'il veut que je le débug entièrement.
 
J'y suis pour rien si je dois deviner par moi-même ce qui se passe derrière son code

Reply

Marsh Posté le 02-08-2005 à 20:03:10    

Code :
  1. <body onLoad="menu(1,'','montrer','montrer','div')
  2.    menu_efface('3','');">


LE Javascript ne se met plus en inline dans le body
 

Code :
  1. <link rel="StyleSheet" href="/admin/install.css" type="text/css" />


Link ca se met dans le <head></head>
 

Code :
  1. <script language="JavaScript1.1" src="/admin/javascript/controles.js" type="text/JavaScript"></script>
  2. <script language="javascript1.1" src="resizable.js" type="text/javascript"></script>


script ca se met aussi dans le head
 
 
idem pour ce qui suis mais :  

Code :
  1. <script language="JavaScript">
  2. function menu()
  3. {
  4. var i,x,tB,j=0,tA=new Array(),arg=menu.arguments;
  5. //alert(arg[1]);


Rien à déclarer à par que tu nous prépare un tableau d'arguments que tu traites ensuite
JE me serai moins emmerdé et aurait plutot déclarer ma fonction comme ceci :  
function menu(jesaispo,jesaispo,action1, action2, element, fonctionappelée)
 
 

Code :
  1. if(arg[1]=="" && document.form3.champtype.value!=null)
  2. [cpp]
  3. utilise un ID, on ne recupère plus les éléments de cette manière, on utilise les fonction du DOM : getElementByID
  4. [cpp]arg[1]="contenu"+document.form3.champtype.value;


moué
 

Code :
  1. if(document.getElementsByTagName)
  2.  {
  3.  for(i=4;i<arg.length;i++)
  4.   {
  5.   tB=document.getElementsByTagName(arg[i]);
  6.   for(x=0;x<tB.length;x++)
  7.    {
  8.    tA[j]=tB[x]; j++;
  9.    }
  10.   }


donc si tu trouve un DIV, jvois pas trop ce que tu veux faire
 

Code :
  1. for(i=0;i<tA.length;i++)
  2.   {
  3.   if(tA[i].id==arg[1])
  4.    {
  5.    if(arg[0]==1)
  6.     {
  7.     tA[i].className=(tA[i].className==arg[3])?arg[2]:arg[3];
  8.     tA[i].className=arg[2];
  9.     }
  10.    else
  11.     {tA[i].className=arg[2];}
  12.    }
  13.   }
  14.  }


La tu fais mumuse avec les classes des éléments mais on n'en sais pas plus, tu n'as pas de code HTML à nous proposer
 

Code :
  1. //document.form1.produits_famille1.options[document.form1.produits_famille1.selectedIndex].value=0;
  2. }
  3. function menu_efface(){
  4. var elems, arg=menu_efface.arguments;
  5. var nbcalque=arg[0];
  6. var nomdiv;
  7. arg[1]="contenu"+document.form3.champtype.value;
  8. for(var i=1;i<=nbcalque;i++)
  9.      {
  10.  nomdiv="contenu"+i;
  11.  if (nomdiv!=arg[1]){
  12.  menu(1,nomdiv,'cacher','cacher','div');
  13.   }
  14.  }
  15. }
  16. </script>


Bon la dernière fonction c'est pour cacher ton élément, mais jen sais pas plus sur ce que tu caches ! Des patates, des choux, des DIV des selects des trucs, oui bon des DIV, mais sans HTML associé à ce bordel de JavaScript on peut pas t'aider
 

xtof_83 a écrit :


 
sa c le début de la page:
 
tu veux un exemple des calques:

Code :
  1. <div align="left" id="contenu1" class="montrer">
  2.          <table width="100%">
  3. ..........



 
ben je te l'ai dit, je veux plus de code HTML, là on sait que tu attaque un select, mais on ne sait pas les champs qu'il  ya  
 
je devine un formulaire qui se nomme form3, un formulaire qui se nomme form1 et qui contient un select qui se nomme produits_famille1 après j'en sais pas plus


Message édité par gatsusat le 02-08-2005 à 20:28:37
Reply

Marsh Posté le 02-08-2005 à 20:27:06    

function menu()  
    {  
    var i,x,tB,j=0,tA=new Array(),arg=menu.arguments;  
    //alert(arg[1]);  
    if(arg[1]=="" && document.form3.champtype.value!=null)  
        arg[1]="contenu"+document.form3.champtype.value;  
    if(document.getElementsByTagName)  
        {  
        for(i=4;i<arg.length;i++)  
            {  
            tB=document.getElementsByTagName(arg[i]);      
           //avant de faire un for de tb test si tb[0] (le premier element de tb existe
          if (tb[0]) {
             for(x=0;x<tB.length;x++)  
                {          
                tA[j]=tB[x]; j++;  
                }  
            }
          }  
     
  for(i=0;i<tA.length;i++)  
            {  
            if(tA[i].id==arg[1])  
                {              
                if(arg[0]==1)  
                    {  
                    tA[i].className=(tA[i].className==arg[3])?arg[2]:arg[3];  
                    tA[i].className=arg[2];  
                    }  
                else  
                    {tA[i].className=arg[2];}  
                }  
            }  
        }  
    //document.form1.produits_famille1.options[document.form1.produits_famille1.selectedIndex].value=0;  
    }  
 
 
Jvais pas chercher à tout t'expliquer car vu la gueule du code, il y a manière de faire 100x plus simple, plus lisible, et automatisé.
 
au passage, commente ton code, celui qui passera après toi sera totalement perdu

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed