IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Identifier par Name au lieu de Id


Sujet :

JavaScript

  1. #1
    Membre averti
    Femme Profil pro
    bordeaux
    Inscrit en
    Avril 2017
    Messages
    39
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : bordeaux
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 39
    Par d�faut Identifier par Name au lieu de Id
    Bonjour,

    Voici mon script qui permet de pr�remplir un champ et de cliquer automatiquement sur le bouton "entrer".
    Je voudrais utiliser "name" au lieu de "id" pour identifier mon bouton,
    donc remplacer "document.getElementById" par "document.getElementsByName" dans la fonction "clic" mais je n'arrive pas � faire fonctionner le script.

    Voici mon code:

    Code HTML : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <!DOCTYPE html>
    <html>
    <body>
     
    <h3>Prefill & autoclick</h3>
     
    <input id="myInput">
    <input value="Entrer" type="submit" name="testname" id="myBtn" onclick="javascript:alert('Clicautomatique')">
     
    <script>
     
           function lp()
            {
             var couleur = document.getElementById("myInput");
              if (couleur != null) {
              couleur.value = "rouge";
              return;
            }
              setTimeout(function(){lp();}, 100);
            }
                  setTimeout(function(){lp();}, 100);
           
           function clic()
            {
              evt = document.createEvent("MouseEvents");
              evt.initMouseEvent("click", true, true, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);
              document.getElementById("myBtn").dispatchEvent(evt);
             }
              
             setTimeout(clic,1000);
     
    </script>
    </body>

    Apr�s je me disais, existe t'il un moyen "d'appuyer automatiquement sur la touche Entr�e SI le champs est rempli" ?

    Je vous remercie pour votre aide,
    Marion

  2. #2
    Membre extr�mement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par d�faut
    salut...
    Est-ce que tu as remarqu� que la m�thode getElementsByName �tait obligatoirement plurielle ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     document.getElementsByName('myInput')[0].value = 'toto'

  3. #3
    Membre averti
    Femme Profil pro
    bordeaux
    Inscrit en
    Avril 2017
    Messages
    39
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : bordeaux
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 39
    Par d�faut
    oui tout � fait, mais quand je remplace (ligne 27, celle qui m'interesse):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById("myBtn").dispatchEvent(evt);
    par:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementsByName("testname").dispatchEvent(evt);
    cel� ne fonctionne pas, pourquoi ?

  4. #4
    Membre extr�mement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par d�faut
    faudrait d'abord �crire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementsByName("testname")[0].dispatchEvent(evt);
    sinon on peut envoyer un event sur un input, et m�me le recup�rer avec "listener d'event" mais ce n'est pas pour autant que le m�canisme de l'envoi (ici ton "click" ) sera trait� comme tel par le navigateur.

    C'est un m�canisme de s�curit� ( il doit y avoir une trace quelque part dans les directives du W3C).

    sinon ,un script pourrait tr�s bien pr�remplir un formulaire d'achat et d'envoyer une commande � l'insu de n'importe quel internaute.

  5. #5
    Membre averti
    Femme Profil pro
    bordeaux
    Inscrit en
    Avril 2017
    Messages
    39
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : bordeaux
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 39
    Par d�faut
    Je comprends, merci, donc si je comprends bien il n'y a pas d'autres solutions que mon script pour auto click?

  6. #6
    Membre extr�mement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par d�faut
    Si, c'est un m�canisme natif sur les formulaires, mais comme tu n'utilises pas de formulaire alors ce m�canisme n'est pas actif.

    faut aussi inhiber l'envoi du formulaire sinon la page se recharge automatiquement, et cherche � envoyer ses donn�es

    PS; Oui tout ce qui touche aux objets de formulaires (les seuls a avoir un attribut name) ont un comportement un peu irrationnels.

    �a se code de cette mani�re:
    Code HTML : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="UTF-8">
      <title>Prefill & autoclick</title>
    </head>
    <body>
     
      <h3>Prefill & autoclick</h3>
     
      <form id="my-form">
        <input type="text" name="myInput">
      </form>
     
    <script>
      const myForm = document.getElementById('my-form')
        ;
      // "Prefill"
      myForm.myInput.value = 'toto'    // on peut se servir du name directement en se référant a son formulaire parent
        ;
      // aussi déclenché quand on tape sur la touche Entée du clavier
      myForm.onsubmit=e=>   
        {
        e.preventDefault()  // empeche l'envoi réel du formulaire
        alert( `valeur entrée = ${myForm.myInput.value}`)
        }
    </script>
    </body>
    </html>

  7. #7
    Membre averti
    Femme Profil pro
    bordeaux
    Inscrit en
    Avril 2017
    Messages
    39
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : bordeaux
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 39
    Par d�faut
    Merci beaucoup 👍🏻👍🏻

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Num�rotation des sections qui commence par 0 au lieu de 1
    Par Lumina- dans le forum Mise en forme
    R�ponses: 3
    Dernier message: 12/05/2008, 10h24
  2. Passage d'un identifiant par un lien
    Par oceane751 dans le forum Langage
    R�ponses: 7
    Dernier message: 20/02/2008, 15h46
  3. [IE] par d�faut au lieu de Mozilla ?
    Par ouldfella dans le forum IE
    R�ponses: 2
    Dernier message: 13/03/2007, 11h14
  4. Acc�der au second <td> lorsque le le premier <td> est identifi� par id
    Par Invit� dans le forum G�n�ral JavaScript
    R�ponses: 10
    Dernier message: 17/05/2006, 20h58
  5. Placer une image � un endroit identifi� par ses coordonn�es
    Par sempire dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 16/11/2005, 22h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo