Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Prototype] $$('...').style is undefined

Sujet résolu
    13 janvier 2009 à 14:45:56

    Bonjour,

    J'essaye de modifier le style du bouton Connexion de mon formulaire mais Firebug me donne une erreur ...

    <input type='submit' value='Connexion' />
    


    Event.observe(window, 'load', function ()
    {
        ...
    
        $$('input[type="submit"]').style.marginLeft = ...;
    });
    


    Firebug me dit cela : $$("input[type=\"submit\"]").style is undefined, une idée ?
    Voici le lien de la doc Prototype : http://prototypejs.org/api/utility/dollar-dollar .

    Merci !
    • Partager sur Facebook
    • Partager sur Twitter
      13 janvier 2009 à 15:43:22

      Salut

      La fonction $$() attend un id et non un tag avec attribut.
      De plus, pour être correct, il faut remplacer tes quotes par des doubles quotes pour les valeurs d'attributs dans le html.

      Edit:
      - utilise document.getElementsByTagName() (me souviens plus du raccourci dans prototype) pour récupérer les inputs. Et attention, ça te renvoie un array.
      • Partager sur Facebook
      • Partager sur Twitter
      Only limits are ours...
        13 janvier 2009 à 23:05:16

        D'apres la doc, le raccourci $('...') requiert un id et $$('...') requiert un element :

        $$('div'); // -> all DIVs in the document.  Same as document.getElementsByTagName('div')!
        $('...'); // Not only does it provide a handy alias for document.getElementById ...
        


        Ensuite, je ne veux pas utiiliser d'id ni getElementByTagName mais seulement $$('...') ... ce qui ne resoud pas mon probleme :D .


        Sinon, on m'a deja fait la remarque pour les doubles cotes. J'ai aucune erreur a la validation donc pourquoi ca serait incorrect ?
        • Partager sur Facebook
        • Partager sur Twitter
          16 janvier 2009 à 19:17:10

          Essaye sans les guillement a type=submit .
          • Partager sur Facebook
          • Partager sur Twitter
            16 janvier 2009 à 19:34:29

            Haha ^^ J'ai trouve :D . En faite la fonction $$() retourne un Array ! Donc j'aurai du faire :

            $$('input[type="submit"]')[0].style.marginLeft = ...;
            


            Sinon ça n'a rien changer sans les guillemets ...
            • Partager sur Facebook
            • Partager sur Twitter

            [Prototype] $$('...').style is undefined

            × 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