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 :

Comment parcourir un formulaire


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut Comment parcourir un formulaire
    Bonjour,

    J'essaye de faire mon petit formulaire de validation. Mais n'étant pas grand expert de jQuery je bloque sur un petit point.

    D'abord mon code s'exécute quand on presse le boutin submit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $('#module-add form#add-module').submit(function(event){
    		event.preventDefault();
    		Form.validate($(this));
     
    		return false;
    	});
    Jusqu'à la OK.

    En suite je vais dans ma fonction validate, et je coince pour parcourir tous les champs de mon formulaire.

    Par exemple dans ce code, j'essaye de mettre un border rouge, a tous les champs de type texte, qui ont la valeur "correct"
    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
     
    Form = {
    	init 		: function(){
     
    			},
     
    	validate	: function(form){
     
        	 		if ($('input[type="text"]').val() == "correct") {
     
    					$(this).css("border-color","#ff2222");
     
    		 			$(this).attr('value','YES');
    		 			//alert('YES');
     
     
     
          			}else{
    		 			alert('NO');
    					$(this).attr('value','nNOT');
     
    				}
     
    	}// End of Validate();
     
    }
    Mon idée sera de parcourir tous les champs d emon formulaire.
    Si un a la class "required", il controlera que le champs n'est pas vide.
    Si il a une class "stringOnly" il controlera qu'il n'a que du texte
    Si il a la class "numberOnly" il controlera qu'il a que des nombre

    Etc....

    Sauriez-vous comment parcourir ce formulaire?

    Merci beaucoup

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    tu peux utiliser le selecteur :input

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $(":input", form).each(function() {
       var field = $(this);
       if(field.hasClass(...)) {
       }
       ...
    });

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    pourquoi ne pas atteindre les éléments du formulaire directement grâce à leur classe.

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    pourquoi ne pas atteindre les éléments du formulaire directement grâce à leur classe.
    Parce que tous les champs n'ont pas forcement une classe.

    EDIT: Désolé, répondu trop vite, oui dans son cas on pourrait sélectionner d'après les classes

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Merci pour vos réponses. Ca m a aidé et j'ai pu avancé.
    Cependant j'ai toujours un problème

    Pour resumé:
    Quand j'envoi un formulaire il va faire appelle a une fonction validate

    Dans le cas d'une class "required", j'applique cette function Form.required() qui fait appelle a une librairie Buuble v3

    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
     
    Form = {
    	init 		: function(){
     
    			},
     
    	validate	: function(form){
     
     
    				$(":input", form).each(function() {
    				   	var input = $(this);
     
    					if(input.hasClass('required')) {			  	
     
    						Form.required(input);
    					}
    					if(input.hasClass('stringOnly')){
    						Form.stringOnly(input);
    					}
    				});
    			},// End of Validate();
     
    	required	: function(input){
     
    				$input = $(input);
     
    				if($input.val().trim().match('^[\s]*[\s]*$')){
     
    					$input.addClass('error'); // Ceci fonctionne très bien. La class "error" est inclue dans tous les champs vide!! 
     
    					var options = {
    						innerHtml		: 'Ce champs ne doit pas être vide',//$(this).attr('title'),
    						themePath		: 'jquery-bubble-v3/jquerybubblepopup-themes',
    						themeName 		: 'all-grey',
    						distance 		: '10px',
    						width			: '300px',
    						alwaysVisible	: true
    						//closingDelay	: 10000
     
    					}
     
    /*
    // Quand j ajoute ceci, je dois cliquer plusieurs fois le ok du popup, et là, toutes mes bulles s'affichent sur les champs qui sont vide et qui ont la classe "required". Bizard.
    					$('.required.error').each(function(index) {
    						alert(index);
    					});
    */			
     
    					console.log(index);
    					$input.CreateBubblePopup(options);
     
    					//show the bubble popup with new options
    					$input.ShowAllBubblePopups(options);
     
    					$input.SetBubblePopupOptions( options );
     
     
     
     
     
    					//$input.FreezeAllBubblePopups();
     
    				}else{
     
    					$input.RemoveBubblePopup();
     
    				};
     
    	}
     
    }
    J'ai trois champs input qui ont la classe "required". Quand j'envoie mon formulaire il va uniquement affiché ma bulle dans le dernier champs qui a la class "required", alors qui devrait afficher la bulle dans les trois champs qui ont la meme classe, puis ce dernier et vide.

    Ce qui est marrant c'est que lorsque je j'ajoute ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('.required.error').each(function(index) {
    						alert(index);
    					});
    juste avant la ligne "console.log(index)", il y a comme un délai qui est causé par les popup et quand le dernier popup s'est fermé, là mes trois bulles reste affiché.

    Ex-ce que je me suis fait comprendre dans mon explication?


Discussions similaires

  1. Comment faire ??? Sous formulaire ? Autre ?
    Par Zotto dans le forum IHM
    Réponses: 11
    Dernier message: 14/06/2005, 15h53
  2. Comment afficher un formulaire de demarrage en plein ecran?
    Par ornitore dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 23/05/2005, 15h16
  3. Réponses: 4
    Dernier message: 20/04/2005, 12h00
  4. Comment parcourir un tableau
    Par petitsims dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/01/2005, 14h33
  5. [VB.NET] [PPC] Comment faire un formulaire sur pls pages?
    Par papy27 dans le forum Windows Mobile
    Réponses: 10
    Dernier message: 03/06/2004, 17h23

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