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 :

onSubmit et onClick ne semblent pas marcher ensemble!


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut onSubmit et onClick ne semblent pas marcher ensemble!
    Bonjour,
    J'ai un fichier .jsp que contient un formulaire de plusieurs champs.
    Chaque entrée peut être:
    - modifiée individuellement (1 Submit à coté du champ)
    - modifée globalement (1 submit a la fin du formulaire)

    Avant de soumettre un formulaire, il faut exécuter un validation (function validate()) ====> Pour cette raison, j'ai ajouté dans la définition du formulaire: onSubmit="return validate()"

    Chaque bouton "submit" est activé par onClick="reDirect(0,<paramName, paramIndex)".
    Cette fonction (0 => individuel, 1 => global) permet tout simplement de construire l'appel de modif.jsp avec le nom du paramètre en paramètre.

    Le probleme c'est que MEME SI LA VALIDATION NE PASSE PAS, le fichier modif.jsp est appelé!!!
    C'est comme si le "onClick" primait sur "onSubmit" puisque peut importe le résultat de la function validate, la fonction reDirect est excecutée!


    Je ne sais plus que faire..... HELP!!!!

    ========================
    <html>
    <title>Example</title>
    <head>
    <script language=JavaScript>

    var fieldIndex;
    var modifType;

    function validate()
    {
    var str = document.attributes.elements[fieldIndex].value;
    alert("str="+str);
    if (str.match(/^(\s)*$/) )
    {
    alert("Ne peut être vide!");
    document.attributes.elements[fieldIndex].select();
    document.attributes.elements[fieldIndex].focus();
    return false;
    }
    return true;
    }

    function reDirect(target, fieldName,index)
    {
    fieldIndex=index;
    modifType=target;

    if (target == 0) document.attributes.action="modif_param.jsp?paramName="+fieldName;

    if(target == 1) document.attributes.action="modif_all_params.jsp";
    document.attributes.submit();
    }
    </script>
    </head>
    <%@page language="java" %>
    <body>
    <form onSubmit="return validate()" method="post" name="attributes" action="">
    <table>
    <tbody>
    <%
    int fieldInd=0;
    for (int i=0; i<5; i++)
    {
    String paramValue = "A"+String.valueOf(i);
    String paramName = "Name"+String.valueOf(i);
    %>
    <tr>
    <td>
    <input type=text name=<%=paramName%> value=<%=paramValue%>>
    <input type="image" onClick="reDirect(0,'<%=paramName%>',<%=String.valueOf(fieldInd)%>)" src="../images/M.gif">
    </td>
    </tr>
    <%
    fieldInd++;
    }
    %>
    </tbody>
    </table>
    <input onclick=reDirect(1,'','','') type=button value="Modificar todos">
    </form>
    </body>
    </html>


    If the validation does not pass, the form needs to be shown with the data previously entered by the user.

    Now, I haven't even come to the previous problem I have mentioned..... my problem is that if a field is empty, the function isValid() recognize it (message sent) .... but the reDirect function is performed!!!!

    Could you help please?


    I am using a javascript function "reDirect" to perform the multiple submit button:

    - target = 0 => Individual submit
    = 1 => Global submit
    - fieldName => Fieldname to be modified
    - index => Field number of fieldName.

    I have two global variables: fieldIndex and modifType, so the validation function will know whith variable to look at (with fieldIndex) and the modifType ( 0=> individual, 1 => global)

    The scriptlet is :
    ==================================
    <html>
    <title>Test</title>
    <head>
    <script language=JavaScript>
    <!--- oculta el script para navegadores antiguos

    var fieldIndex;
    var modifType;

    function isValid()
    {
    var str = document.attributes.elements[fieldIndex].value;
    if (str.match(/^(\s)*$/) )
    {
    alert("This field ield cannot be empty");
    document.attributes.elements[fieldIndex].select();
    document.attributes.elements[fieldIndex].focus();
    return false;
    }
    }

    function reDirect(target, fieldName,index)
    {
    fieldIndex=index;
    modifType=target;

    if(target == 0) document.attributes.action="modif_one.jsp?name=fieldName";
    if(target == 1) document.attributes.action="modif_all.jsp";
    document.attributes.submit();
    }

    // end hiding from old browsers -->
    </script>
    </head>
    <%@page language="java" %>
    <body>
    <form onSubmit="return isValid()" method="post" name="attributes" action="">
    <table>
    <tbody>
    <%
    int fieldInd=0;
    for (int i=0; i<5; i++)
    {
    String paramValue = "A"+String.valueOf(i);
    String paramName = "Name"+String.valueOf(i);
    %>
    <tr>
    <td>
    <input type=text name=<%=paramName%> value=<%=paramValue%>>
    <input type="image" onClick="reDirect(0,'<%=paramName%>',<%=String.valueOf(fie
    ldInd)%>)" src="../images/M.gif">
    </td>
    </tr>
    <%
    fieldInd++;
    }
    %>
    </tbody>
    </table>
    <input onclick=reDirect(1,'','','') type=button value="Modify all">
    </form>
    </body>
    </html>
    =====================================

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    pour que l'on puisse t'aider
    c'est plus facile pour lire

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    D'accord. Je le saurai pour la prochaine fois... je ne connaissais pas cette balise. Désolée.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    edites déja ton premier post pout rajouter les balises
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ben de toute façon, ta fonction "onclick" soumet le formulaire... à partir de là le reste du code est bon pour la corbeille hein!

  6. #6
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    Par flemme de reposter la meme chose, je t'invite a lire
    msg developpez ou tu devrai en cherchant un peu trouver une reponse a ton probleme. L'idee est simple, forcer l'appel a la validation de ton formulaire et soumettre seulement si cette derniere est correcte.
    Bonne chance.
    Fred.

Discussions similaires

  1. onSubmit qui ne se déclenche pas
    Par Sergejack dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 01/08/2006, 11h24
  2. evenement onclick ne fonctionne pas avec explorer??
    Par nath-0-0 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/03/2006, 12h13
  3. mon "insert" ne veut pas marcher !!
    Par harlock59 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 02/01/2006, 13h17
  4. Réponses: 14
    Dernier message: 16/05/2005, 13h20
  5. Kmail veux pas marcher sur mon serveur avec postfix
    Par jean christophe dans le forum Réseau
    Réponses: 4
    Dernier message: 06/05/2005, 01h02

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