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

Web Perl Discussion :

Bizarreries Javascript avec Perl


Sujet :

Web Perl

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut Bizarreries Javascript avec Perl
    Bonjour à tous !

    Je voudrais vous faire part d'une bizarrerie que j'ai trouvé et savoir si vous savez :
    1. d'où ça vient
    2. comment y rémédier

    Je veux faire afficher un message si un champ d'un formulaire obligatoire n'est pas rempli. Pour cela, j'utilise le Javascript (Si certains ont d'autres propositions, je suis preneuse !!!). Or impossible de faire fonctionner un "onSubmit" alors qu'un "onClick" fonctionne...
    J'ai pas de message d'erreur qui s'affiche (ni en popup ni dans le fichier error_log du serveur) ; seulement dans le fichier d'accès je remarque qu'il ne comprend pas le "onSubmit" car si on tape qqch dans le champ nom, il ne met pas les variables dans l'adresse "/cgi-bin/test.pl?prenom=".

    Voici les deux codes que j'ai testé. Si quelqu'un a une idée du pourquoi du comment, ça m'intéresse, car je préfèrerais pouvoir faire du "onSubmit" qui me permettrait de valider le formulaire en tapant sur "entrée" (contrairement au onClick).

    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
    19
    20
    21
      use CGI qw/:standard :html3/ ; 
      print header,
          start_html(-title=>'Préparation des données');
    print <<HTML;
    <script type="text/javascript">
     
    function afficher(frm){
      if (document.F.prenom.value == "")
         alert("Vous n'avez pas tapé de prénom");
         document.F.prenom.focus();
    }
    </script>
     
    <form name="F">
      <p>
        <label for="prenom">Saisissez votre prénom :</label>
        <input type="text" name="prenom" id="prenom" />
        <input type="submit" value="Ok" onclick="afficher(this.form)"/>
      </p>
    </form>
    HTML
    Pour "onSubmit", j'ai tapé le code suivant qui apparemment ne marche pas...
    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
    19
    20
    21
    use CGI qw/:standard :html3/ ; 
      print header,
          start_html(-title=>'Préparation des données');
    print <<HTML;
    <script type="text/javascript">
     
    function afficher(frm){
      if (document.F.prenom.value == "")
         alert("Vous n'avez pas tapé de prénom");
         document.F.prenom.focus();
    }
    </script>
     
    <form name="F" onsubmit="afficher(this.form)">
      <p>
        <label for="prenom">Saisissez votre prénom :</label>
        <input type="text" name="prenom" id="prenom" />
        <input type="submit" value="Ok" />
      </p>
    </form>
    HTML
    Si vous avez une idée ou un conseil...

    Merci !!!

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    moi j'evite ce genre de print
    lorsque je vais du cgi, et ça marche mieux. Pourquoi, je sais po !
    Donc fait plusieurs print.
    De plus pourquoi t'utilise pas tout court.
    Mais ton javascript dans un fichier.js et tu l'appelles, c'est plus propre.

  3. #3
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Tout simplement que dans ta fonction appeler par onsubmit, si tu veux pas que le formulaire soit "submitter" tu dois retourné false

    ce qui donnerais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function afficher(frm){ 
      if (document.F.prenom.value == "") 
         alert("Vous n'avez pas tapé de prénom"); 
         document.F.prenom.focus(); 
        return false;
    }
    si tu ne met pas return false, peut importe si les champs sont tous rempli... le formulaire va etre envoyer pareil.

    P.S C'est une question javascript et non perl. Donc merci de bien vouloir posté dans le forum approprié la prochaine fois

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut
    Je suis désolée, je pensais pas que c'était un problème de Java en soi, mais plutôt un pb de compatibilité Java/Perl...

    Je continue à poser mes questions sur le forum Java, car j'ai toujours qq pb...

    Merci beaucoup !

    Et je prends note de :

    moi j'evite ce genre de print
    Code:

    print <<HTML

  5. #5
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    si ton prob est réglé merci de bien vouloir mettre le tag

    merci et au plaisir de se revoir!!

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Moi je te conseille plutôt de ne pas tenir compte de la remarque de ce grognon de Djibril : ton écriture est beaucoup plus lisible et aussi correcte qu'une série de print(), conserve la donc, si tu ne souhaite pas utiliser le module CGI.

    --
    Jedaï

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par Jedai
    Moi je te conseille plutôt de ne pas tenir compte de la remarque de ce grognon de Djibril : ton écriture est beaucoup plus lisible et aussi correcte qu'une série de print(), conserve la donc, si tu ne souhaite pas utiliser le module CGI.

    --
    Jedaï
    la saleté

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut
    Ne vous battez pas les gars !!!
    Mais c'est vrai que j'ai tendance à préférer la méthode où on évite les print"" partout... dsl Djibril...
    Bonne soirée à vous !

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

Discussions similaires

  1. [web] Présentation avec Perl/Tk
    Par Stephan COMBES dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 01/06/2004, 21h45
  2. update avec Perl
    Par mimilou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/05/2004, 16h22
  3. Connexion avec Perl
    Par BARBIER dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/05/2004, 14h05
  4. faire des graphiques avec Perl
    Par And_the_problem_is dans le forum Modules
    Réponses: 2
    Dernier message: 16/07/2003, 16h08
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

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