J'ai un gros problème parce que j'ai un écouteur d'événement qui fonctionne parfois et d'autres non et je ne sais vraiment pas ce qui se passe, j'espère que quelqu'un pourra m'aider à comprendre ce qui se passe.

Voici le code de mon formulaire php

<div class="master">
    <form class="login" id="login" method="post">
        <br>
        <span class="titulo"><?php echo LOGIN_TITLE ?></span>

        <div class="loginform">
            <br>
            <i class="icon"><?php echo EMAIL_IMG ?></i>
            <input type="email" class="formcontrol" id="loginMail" name="loginMail" placeholder="correo electrónico">
            <br><br>
        </div>

        <div class="loginform">
            <br>
            <i class="icon"><?php echo PASS_IMG ?></i>
            <input type="password" class="formcontrol" id="loginPass" name="loginPass" placeholder="contraseña">
            <br><br><br>
        </div>

        <div class="campo enviar">
            <input type="hidden" id="tipoAccion" value="login">
            <input type="submit" class="loginButton" value="accesar">
        </div>
    </form>
</div>

Voici mon fichier JS

loginListeners(); 

// detecta los eventos en la pagina
function loginListeners() {
    document.querySelector('[value="login"]').addEventListener('submit', validarRegistro);

    
    console.log(document.querySelector('[value="login"]'));
}

function validarRegistro(event) { 
    // prevenimos que no se envie la forma hasta que lo necesitemos
    event.preventDefault();

    console.log('INSIDE THE FUNCTION');
}

Comme je l'ai dit auparavant, cela fonctionne parfois, et je n'ai vraiment pas ce qui se passe. Après avoir appuyé sur le bouton de soumission, l'auditeur js prend cette soumission mais n'exécute jamais la fonction "validarRegistro"

J'apprécie vraiment toute aide

Voici le résultat que j'ai obtenu dans la console js de mon navigateur

JS CONSOLE



REMARQUE : j'ai mis à jour le code pour n'afficher que les éléments nécessaires


0
dgoldfeder 11 oct. 2020 à 01:57

1 réponse

Meilleure réponse

Vous liez l'événement de soumission à une entrée masquée et non au formulaire.

document.querySelector('[value="login"]').  <-- value="login"

Votre formulaire a une classe et un identifiant avec login, pas une valeur.

document.querySelector('#login').addEventListener('submit', validarRegistro);
1
epascarello 11 oct. 2020 à 14:39