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

jQuery Discussion :

jquery et validation de formulaire


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Par défaut jquery et validation de formulaire
    Bonsoir,
    J'utilise le plugin JQuery pour vérifier un formulaire.
    J'aimerai faire des conditionnels sur les champs requis nom et adresse.
    Je souhaite lever une erreur uniquement si aucun de ces deux champs est sélectionné.

    Mon code actuel est visible ici :
    http://helptuto.fr/test/application/application5.php

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <!DOCTYPE HTML>
    <html>
    	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    	<title>formulaire</title>
    	<link type="text/css" rel="stylesheet" href="../css/style.css">
            <script src="../js/jquery.js" type="text/javascript"></script>
    	<script type="text/javascript">
    function valider(){
    	valid = true;
    	if($("#ref").val() == ""){
    		$("#ref").css("border-color","#FF0000");
    		$("#ref").parent().next(".error-message").fadeIn().text("Veuillez entrer votre r�f�rence.");
    		valid = false;
    	}
    	else{
    		$("#ref").css("border-color","#00FF00");
    		$("#ref").parent().next(".error-message").fadeOut();
    	}
     
    	if ((document.getElementById("nom").selectedIndex=-1) && (document.getElementById("ip").selectedIndex=-1)){
    	//if (($("#nom option:selected").val() == "") && ($("#ip option:selected").val()== "")){
    	//if (($("#nom").selectedIndex == '-1') && ($("#ip").selectedIndex == '-1')){
    		$("#nom").css("border-color","#FF0000");
    		$("#ip").css("border-color","#FF0000");
    		$("#nom").parent().next(".error-message").fadeIn().text("Veuillez s�lectionner un nom ou une adresse.");
    		$("#ip").parent().next(".error-message").fadeIn().text("Veuillez s�lectionner un nom ou une adresse.");
    		valid = false;
    	}
    	else{	
    		$("#nom").css("border-color","#00FF00");
    		$("#nom").parent().next(".error-message").fadeOut();
    		$("#ip").css("border-color","#00FF00");
    		$("#ip").parent().next(".error-message").fadeOut();
    	}
    	return valid;
    }
            </script>
    </head>				<form action="traitementApp.php" class="cmxform" id="frm_choix" method="post" onsubmit="return valider()">
    			<fieldset>
    				<legend>Identification </legend>
    				<p>
    					<label for='ref'>Référence </label><input type='text' name='ref' id='ref'>
    					<label for='com'>Comentaire</label><input type='text' name='com' id='com'>
    					<label for='nom'>Nom</label>
    					<select name='nom[]' id='nom' size='4' multiple>
    						<option value='2510'>2510</option>
    						<option value='2610'>2610</option>
    						<option value='2510'>2512</option>
    						<option value='2510'>2524</option>
    						<option value='2510'>2312</option>
    						<option value='2510'>2324</option>
    					</select>
    				</p>
    				<p>
    					<label for='ip'>Adresse</label>
    					<select name='ip[]' id='ip'size='4' multiple>
    						<option value='10.0.0.0'>10.0.0.0</option>
    						<option value='10.0.0.2'>10.0.0.2</option>
    						<option value='10.0.0.3'>10.0.0.3</option>
    						<option value='10.0.0.5'>10.0.0.5</option>
    						<option value='10.0.0.9'>10.0.0.9</option>
    						<option value='10.0.0.10'>10.0.0.10</option>
    						<option value='10.0.0.11'>10.0.0.11</option>
    						<option value='10.0.0.12'>10.0.0.12</option>
    						<option value='10.0.0.13'>10.0.0.13</option>
    					</select>
    				</p>
    			</fieldset>
    			<fieldset>
    				<legend>Options</legend>
    				<p>
    					<label for="nbjour">Afficher les données depuis :</label>
    					<select name="nbjour">
    						<option value="0">Aucun tri</option>
    						<option value="1">1 jours</option>
    						<option value="7">7 jours</option>
    						<option value="30">30 jours</option>
    					</select>
    				</p>
                                    <p>
    					<div id="error-message "></div>
    				</p>
    				<p>
    					<input class="submit" type="submit" value="Envoyer">
    				</p>
    			</fieldset>
    		</form>
    	</body>
    </html>
    A priori ma conditionnelle ne fonctionne pas bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((document.getElementById("nom").selectedIndex=-1) && (document.getElementById("ip").selectedIndex=-1)){
    Avez-vous une idée ?

    Merci.

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Par défaut
    Bonsoir,

    Voilà j'ai reformulé mon problème.
    J'espère que mes explication sont claires

  3. #3
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    bonsoir,

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <!DOCTYPE HTML>
    <html>
    	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    	<title>formulaire</title>
            <script src="http://code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script>
    	<script type="text/javascript">
            $(document).ready(function(){
     
     
            $('#frm_choix').submit(function(){
     
            valid = true;
    	if($("#ref").val() == ""){
    		$("#ref").css("border-color","#FF0000");
    		$("#ref").parent().next(".error-message").fadeIn().text("Veuillez entrer votre r�f�rence.");
    		valid = false;
    	}
    	else{
    		$("#ref").css("border-color","#00FF00");
    		$("#ref").parent().next(".error-message").fadeOut();
    	}
     
    	if ((document.getElementById("nom").selectedIndex=-1) && (document.getElementById("ip").selectedIndex=-1)){
    	//if (($("#nom option:selected").val() == "") && ($("#ip option:selected").val()== "")){
    	//if (($("#nom").selectedIndex == '-1') && ($("#ip").selectedIndex == '-1')){
    		$("#nom").css("border-color","#FF0000");
    		$("#ip").css("border-color","#FF0000");
    		$("#nom").parent().next(".error-message").fadeIn().text("Veuillez s�lectionner un nom ou une adresse.");
    		$("#ip").parent().next(".error-message").fadeIn().text("Veuillez s�lectionner un nom ou une adresse.");
    		valid = false;
    	}
    	else{	
    		$("#nom").css("border-color","#00FF00");
    		$("#nom").parent().next(".error-message").fadeOut();
    		$("#ip").css("border-color","#00FF00");
    		$("#ip").parent().next(".error-message").fadeOut();
    	}
    	return valid;
     
            });
     
     
            });
            </script>
    </head>		<body>
     
    <form action="traitementApp.php" class="cmxform" id="frm_choix" method="post" >
    			<fieldset>
    				<legend>Identification </legend>
    				<p>
    					<label for='ref'>Référence </label><input type='text' name='ref' id='ref'>
    					<label for='com'>Comentaire</label><input type='text' name='com' id='com'>
    					<label for='nom'>Nom</label>
    					<select name='nom[]' id='nom' size='4' multiple>
    						<option value='2510'>2510</option>
    						<option value='2610'>2610</option>
    						<option value='2510'>2512</option>
    						<option value='2510'>2524</option>
    						<option value='2510'>2312</option>
    						<option value='2510'>2324</option>
    					</select>
    				</p>
    				<p>
    					<label for='ip'>Adresse</label>
    					<select name='ip[]' id='ip'size='4' multiple>
    						<option value='10.0.0.0'>10.0.0.0</option>
    						<option value='10.0.0.2'>10.0.0.2</option>
    						<option value='10.0.0.3'>10.0.0.3</option>
    						<option value='10.0.0.5'>10.0.0.5</option>
    						<option value='10.0.0.9'>10.0.0.9</option>
    						<option value='10.0.0.10'>10.0.0.10</option>
    						<option value='10.0.0.11'>10.0.0.11</option>
    						<option value='10.0.0.12'>10.0.0.12</option>
    						<option value='10.0.0.13'>10.0.0.13</option>
    					</select>
    				</p>
    			</fieldset>
    			<fieldset>
    				<legend>Options</legend>
    				<p>
    					<label for="nbjour">Afficher les données depuis :</label>
    					<select name="nbjour">
    						<option value="0">Aucun tri</option>
    						<option value="1">1 jours</option>
    						<option value="7">7 jours</option>
    						<option value="30">30 jours</option>
    					</select>
    				</p>
                                    <p>
    					<div id="error-message "></div>
    				</p>
    				<p>
    					<input class="submit" type="submit" value="Envoyer">
    				</p>
    			</fieldset>
    		</form>
    	</body>
    </html>
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Par défaut
    Bonsoir,
    Je viens de tester ce code ici : http://helptuto.fr/test/application/application6.php

    Malheureusement la conditionnelle ne fonctionne pas sur l'ip et le nom.

    Une idée ?

  5. #5
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Il faut mettre "==" pour tester l'égalité, j'avais pas fait gaffe.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((document.getElementById("nom").selectedIndex==-1) && (document.getElementById("ip").selectedIndex==-1)){
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Par défaut
    c'est fonctionnel. Moi non plus ne n''ai pas fais attention.
    Par contre en cas d'erreur, mon texte précisant l'erreur ne s'affiche pas dans ma div et je ne vois pas pourquoi.

    Ma méthode est-elle correcte ?
    Si non que dois-je faire ?
    Merci

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

Discussions similaires

  1. Bootstrap et validation de formulaire avec jQuery
    Par irrols dans le forum jQuery
    Réponses: 2
    Dernier message: 24/05/2015, 10h08
  2. [Plugin] Jquery tools Validator et formulaire externe (load)
    Par alfazzz dans le forum jQuery
    Réponses: 2
    Dernier message: 04/10/2012, 19h27
  3. [ZF 1.10] validation du formulaire côté client (Jquery/ajax?)
    Par antrax2013 dans le forum Zend_Form
    Réponses: 3
    Dernier message: 11/07/2012, 21h22
  4. Valider un formulaire avec JQuery
    Par Armagnak dans le forum jQuery
    Réponses: 0
    Dernier message: 31/07/2008, 21h06

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