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 :

Validation de formulaire : comportement anormal ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Par défaut Validation de formulaire : comportement anormal ?
    Bonjour,

    Voici mon formulaire :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form>
        Numéro de la revue : 
        <input type="text" id="numero" onKeyPress="if(event.keyCode == 13){sommaire();}">
        <input type="button" value="Afficher le sommaire" onClick="sommaire();" >
    </form>
    Je voulais valider indifféremment avec le bouton ou entrée.
    La fonction javascript sommaire() déclenche un appel ajax à un fichier php : j'ai vérifié (en posant quelques "alert" ) que dans les deux cas, l'url transmise à mon fichier php est identique.
    Mais... avec le bouton, j'ai un retour normal, avec entrée, mon fichier php n'est pas atteint.
    Voyez-vous où est mon erreur ?
    Merci pour votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Bonjour, si sommaire(); est appelé alors en faisant F12 depuis le navigateur puis dans réseau voir si l'appel à la page PHP est bien appelé avec les bon paramètres et surtout la réponse de cette page du obligatoirement soit généré du html en vue de parser directement du HTML sont des données JSON avec un header content type paramétré en JSON.
    De plus nous ne savons pas ce que contient la fonction "sommaire" surement un appel ajax, ma fois mon aide se limite a extrapoler a défaut d'être plus précis.

  3. #3
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Par défaut
    Citation Envoyé par headmax Voir le message
    De plus nous ne savons pas ce que contient la fonction "sommaire" surement un appel ajax, ma fois mon aide se limite a extrapoler a défaut d'être plus précis.
    Merci d'avoir répondu. Voici ma fonction sommaire(). Elle est très élémentaire. La validation par le bouton donne exactement la même valeur à url que la validation par entrée. J'ai vérifié avec un encodeURI avant l'envoi et il n'y a pas de caractère "parasite".
    En bonne logique, la suite devrait aussi être la même : récupération des données. Mais non, la page php n'est pas sollicitée :j'ai mis un "echo 'ok'; die; " en début de cette page php, et ce "OK" s'affiche bien avec la validation bouton mais pas avec entrée. Je trouve ça très curieux.

    Code : 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
    function sommaire(){
    	var url;
    	var xhr = getXMLHttpRequest();
    	var text;
    	var num=document.getElementById("numero").value.trim();	
    	if(num==""){return;}
    	xhr.onreadystatechange=function()
    	{
    		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {		
    			text=xhr.responseText;
    			(... traitement des données...)
    		}
    	}
    		var code=document.getElementById("code").value;
    		url="../moteur/resulnum.php?revue=" + code + num + "&code=" + code;
    		xhr.open("GET",url,true);
    		xhr.send();	
    }

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    Je ne suis pas sûr d'avoir compris, le problème, c'est le déclenchement par la touche Entrée qui ne lance pas la function sommaire() ?
    Si oui, peut être que
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="numero" onKeyPress="if(event.keyCode == 13 || event.which == 13){sommaire();}">
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Par défaut
    Bonjour et merci pour ta réponse.
    Le déclenchement par la touche entrée ou par le bouton lancent tous les deux correctement la fonction sommaire().
    Mais si je valide avec le bouton, l'appel Ajax se fait correctement et les données récupérées s'affichent bien sur la page html
    En revanche, si je valide avec Entrée, l'appel Ajax ne se fait pas : avec un alert(url) ajouté dans le script juste avant xhr.open, je vois bien que l'url produite dans les DEUX CAS de validation est la même... Mais pourquoi diable avec Entrée je n'arrive pas à accéder à la page php appelée par Ajax ???

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut on se sait pas si tu as plusieurs formulaires dans ta page, mais pour faire simple tu devrais supprimer ton JS inline onKeyPress="if(event.keyCode == 13 || event.which == 13){sommaire();} pour :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var numero = document.getElementById("numero");
     
            numero.addEventListener('keypress', function(event) {
               if(event.keyCode == 13 || event.which == 13){
                    event.preventDefault();
                    document.querySelector('[type="button"]').click(); //le mieux met un id a ton button et utilise getElementById('id_du_button').click();
                }
            });

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Comportement anormal d'un formulaire
    Par jeanpierre78 dans le forum IHM
    Réponses: 8
    Dernier message: 16/09/2011, 23h02
  2. Comportement anormal d'un formulaire
    Par laurentSc dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2010, 08h56
  3. Comportements valider le formulaire ?
    Par hoangeric dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/06/2007, 22h37
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

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