Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Javascript] Probleme avec getElement

2 janvier 2006 à 13:40:51

Salut,
Je me demande pourquoi ce code ne marche pas (je veux absolument faire ca avec name et avec getElement). Est ce quelqu'un saurait pourquoi?
Merci d'avance.
<html>
<head>
<script>
<!--
function sf(){document.getElementByName("input&quot;).focus();}
-->

</script>
</head>
<body onLoad=sf()>
<form name="form">
<input name="input"/>
</form>
</body>
</html>



  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2006 à 13:54:22

1°) Essaye d'enlever le ; ici ("input";) o_O
2°) Met plutot ceci : <body onLoad="sf()">
3°) Hé bah, teste ^^
  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2006 à 14:32:50

Ce code la marche :
<html>
<head>
<script>
<!--
function sf(){document.getElementById("input&quot;).focus();}
-->

</script>
</head>
<body onLoad="sf()">
<form name="form">
<input id="input"/>
</form>
</body>
</html>


Mais moi je veux le faire en connaissant le name et pas l'id. Ya un problème quand j'envoie le message il rajoute un ";" dans getElementById("input") donc normalement il est pas la.
  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2006 à 15:28:27

Non mais c'est pas bien le onload.


window.onload = function()
{
 document.forms['form'].elements['input'].focus();
}

<form id="form">
<div>
<input name="input" />
</div>
</form>


En XHTML, on n'utilise plus l'attribut name, donc pour le formulaire, on remplace par id.
  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2006 à 15:40:35

Oui je sais mais en fait ca serait pour personnaliser la page netvibes avec l'extension greasemonkey de firefox donc jpeut pas changer le code xhtml.
Ok pour le onload.
Tu peux expliquer ca
document.forms['form'].elements['input'].focus();


En fait la structure du code est comme ca, je ne peux pas la changer, je peux juste changer le javascript :
<html>
        <body>
                <div id="application">
                 <table>
                  <tbody>
                   <tr>
                        <td>
                         <div id="modulesArea">
                          <div id="columns">
                           <div class="divColonne">
                                <div class="module">
                                 <div class="moduleFrame">
                                  <div class="moduleContent">
                                   <div>
                                        <div>
                                         <div class="tabContent">
                                          <form>
                                           <table>
                                                <tbody>
                                                 <tr>
                                                  <td>
                                                   <input name="queryInput" class="inputClean">
                                                  </td>
                                                 </tr>
                                                </tbody>
                                           </table>
                                          </form>
                                         </div>
                                        </div>
                                   </div>
                                  </div>
                                 </div>
                                </div>
                           </div>
                          </div>
                         </div>
                        </td>
                   </tr>
                  </tbody>
                 </table>
        </body>
</html>

Et moi je veux mettre en focus le input en faisant ca proprement (sans mettre div.div.div.table.tbody.tr......input.focus()
  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2006 à 18:43:58

Hum, si tu ne peux pas changer le code xHTML, pourquoi est-ce que tu rajoutes un onload="sf(); dans le <body> ?

Bref, pour le code JavaScript :
window.onload = function()
{
 document.forms[0].elements['queryInput'].focus();
}


...Avec ce code, pas besoin de faire de onload, donc ;)
  • Partager sur Facebook
  • Partager sur Twitter
3 janvier 2006 à 22:13:31

Nyro à raison, les formulaires sont des objets prédéfinies du DOM HTML, donc pas besoin de manipulé les objets nodeLest et Elements car dans ton cas je net e cache pas que ça serais vraiment problématique...

Bref, je te conseil de rajouter un nom à ton formulaire et de modifier l'indexation de l'objet forms par le nom du formulaire :)
Ca sera plus clair et risque moin de bugs ;)



Bisous, Nyu
  • Partager sur Facebook
  • Partager sur Twitter

[Javascript] Probleme avec getElement

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
  • Editeur
  • Markdown