Onclick et bouton javascript

ledemskev -  
ledemskev Messages postés 37 Statut Membre -
Bonjour,

je comprend pas quand jutilise une balise <a></a> je met mon onclick="mafonction();" dedans et ca marche mais quand j''utilise une balise <input type="button"></input> sous firefox ca me dis que mafonction n'est pas une fonction ! et sous IE7 ca me dit que cet objet ne prend pas en charge cette methode ! ??????
Configuration: Windows Vista
Firefox 2.0.0.14

5 réponses

  1. ten62 Messages postés 177 Statut Membre 23
     
    Bonjour, pourrais tu montrer ton code ?
    0
    1. ledemskev Messages postés 37 Statut Membre
       
      page HTML
      <html>
      <head>
      </head>
      <script language="javascript" src="o.js"></script>
      <style type="text/css">
      #cara{border:double; text-align:center}
      #nom{color:#0000FF}
      #fbut{color:#990000; border:outset;}
      #cherch{color:#009900; border:inset;}
      .titre{color:#FFFF00}
      </style>
      <body>
      <form name="aaa">
      <input type="text" id="cherch" name="cherch" />
      <input type="button" id="fbut" onClick="cherch();" value="Rechercher" />
      </form>
      <br />
      <div id="cara">
      	<div id="nom"></div><br />
      	<div class="titre">PROCESSEUR</div>
      	<div id="typeproc"></div>
      	<div id="freqproc"></div><br />
      	<div class="titre">RAM</div>
      	<div id="typeram"></div>
      	<div id="tailleram"></div><br />
      	<div class="titre">SYSTEME</div>
      	<div id="sysnom"></div><br />
      	<div class="titre">DISQUE DURE</div>
      	<div id="tailledd"></div>
      	<div id="vitdd"></div>
      </div>
      </body>
      </html>
      

      Page JAVAscript
      //javascript document
      
      	function Ordi(txtNom, objProc, objRam, objSys, objDd)
      		{
      			this.nom = txtNom;
      			this.proc = objProc;
      			this.ram = objRam;
      			this.sys = objSys;
      			this.dd = objDd;
      		}
      		
      	function Proc(txtType, txtFreq)
      		{
      			this.type = txtType;
      			this.freq = txtFreq;
      		}
      		
      	function Ram(txtType, txtTaille)
      		{
      			this.type = txtType;
      			this.taille = txtTaille;
      		}
      		
      	function Sys(txtNom)
      		{
      			this.nom = txtNom;
      		}
      		
      	function Dd(txtTaille, txtVit)
      		{
      			this.taille = txtTaille;
      			this.vit = txtVit
      		}
      	
      	var intel2D = new Proc("intel core 2 duo","1.86 ghz");
      	var DDR3_800 = new Ram("DDR3","800 mhz");
      	var win_vista_fam = new Sys("windows vista édition familiale");
      	var d500_7200 = new Dd("500 go","7200 trs/min");
      	
      	var pcPortable1 = new Ordi("pc portable 1",intel2D,DDR3_800,win_vista_fam,d500_7200);
      	
      	function cherch()
      		{
      			var ch = eval(document.aaa.cherch.value);
      			$('nom').innerHTML = ch.nom
      			$('typeproc').innerHTML = ch.proc.type;
      			$('freqproc').innerHTML = ch.proc.freq;
      			$('typeram').innerHTML = ch.ram.type;
      			$('tailleram').innerHTML = ch.ram.taille;
      			$('sysnom').innerHTML = ch.sys.nom;
      			$('tailledd').innerHTML = ch.dd.taille;
      			$('vitdd').innerHTML = ch.dd.vit;
      		}
      		
      	function $(id)
      		{
      			return document.getElementById(id);
      		}
      	
      
      0
  2. ten62 Messages postés 177 Statut Membre 23
     
    essai peu etre : onClick="javascript:cherch();"
    0
  3. ledemskev Messages postés 37 Statut Membre
     
    ca marche toujours pas ! toujours la meme erreur je comprend pas ! et meme en utilisant une balise <a></a> ca marche que sous Firefox et pas sous IE7 !!
    0
  4. ledemskev Messages postés 37 Statut Membre
     
    parceque je peux utiliser un lien stylisé mais si la personne tape "entree" ca lance en methose GET ==> page.htm?cherch=MARECHERCHE !

    quelqu'un pourrait m'aider ?
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      A mon avis c'est ta fonction cherche() qui en cause.

      Si tu as firefox utilises la console d'erreur du menu outils pour voir ce qui cloche.


      function cherch()
      {
      var ch = eval(document.aaa.cherch.value);
      $('nom').innerHTML = ch.nom
      $('typeproc').innerHTML = ch.proc.type;
      $('freqproc').innerHTML = ch.proc.freq;
      $('typeram').innerHTML = ch.ram.type;
      $('tailleram').innerHTML = ch.ram.taille;
      $('sysnom').innerHTML = ch.sys.nom;
      $('tailledd').innerHTML = ch.dd.taille;
      $('vitdd').innerHTML = ch.dd.vit;
      }


      d'habitude on ne met pas de $ pour les noms de variables en javascript
      un nom de variable doit commencer par une lettre (majuscule ou minuscule) ou un "_"

      ensuite si tu mets:
      var ch = eval(document.aaa.cherch.value);

      ch prend la valeur, et tu ne peux pas l'utiliser ensuite comme objet pour les lignes suivantes
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ledemskev Messages postés 37 Statut Membre
     
    pour ce qui concerne le '$' c'est ma fonction $(id) qui est un raccourci pour la fonction getElementById et en ce qui concerne eval il sert tres bien a recupérer une variable pour l'utiliser en objet ! car comme je le dis si jutilise une balise <a></a> ca marche tres bien !!!!

    Merci de me répondre en ayant des connaissances car deja si on lit pas tout c'est sur qu'on peut pas trouver la solution 'pour le $ par exemple' !! c'est pas mechant mais les reponses pour rien ca fait des fausses joix mais mersi quand meme d'avoir essayer de me répondre !!!
    0