Bonjour,
J'ai un petit problème de validation de formulaire avec JQuery.
J'ai un formulaire avec 3 champs de textes,
J'ai deux règles :
- Un seul champ doit être rempli à la fois.
- Validation de format des champs remplis

Les messages d'erreur sont affichés en haut de la page.

S'il y a deux champs remplis ou plus ( j'affiche un message: "veuillez saisir une seule rubrique" )
Si je remplis un champ avec un format incorrect ( j'affiche soit un message "veuillez saisir une seule rubrique" si d'autres champs remplis ou "format incorrect" )

Ci-joint mon code jquery

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
 
 
// message d'une seule rubrique
jQuery.validator.addMethod('required_group', function(val, el) {
 
 
    	var $module = $(el).parents('div.side_right');
 
    	var contientPlaceHolder = true;
    	var nbreChpAvecPlaceHolder = 0;
 
    	if( $('#txt_montantfix').val() != $('#txt_montantfix').attr('placeholder') 
    			&& $('#txt_montantfix').val() != '' ){
    		nbreChpAvecPlaceHolder++ ;
    	}
 
    	if( $('#dateOp').val() != $('#dateOp').attr('placeholder') 
    			&& $('#dateOp').val() != ''  ){
    		nbreChpAvecPlaceHolder++ ;
    	}
 
 
    	if( nbreChpAvecPlaceHolder <= 1 ){
 
    		contientPlaceHolder = $('#numCheck').val()  == '';
 
 
    	}else{
    		contientPlaceHolder = false ;
    	}
 
 
    	return contientPlaceHolder ;
 
    }, "veuillez renseigner une seule rubrique");
 
    // validation format date
jQuery.validator.addMethod("optdate", function(value, element) {
    	       var check = false;
               var pattern = /^\d{2,2}\/\d{2,2}\/\d{4}$/;
                        if( pattern.test(value)){
                            var adata = value.split('/');
                            var dd = parseInt(adata[0],10);
                            var mm = parseInt(adata[1],10);
                            var yyyy = parseInt(adata[2],10);
                            var xdata = new Date(yyyy,mm-1,dd);
                            if ( ( xdata.getFullYear() == yyyy ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == dd ) )
                                check = true;
                            else
                                check = false;
                        } else
                            check = false;
                        return this.optional(element) || check;
            }, "Please enter a valid date."
    );
 
 
// validation format montant
    jQuery.validator.addMethod("montantfmt", function(value, element) {
    			var check = true;
                var pattern =/^[-+]?[0-9]{1,10}([,\.][0-9]{1,2})?$/;
                if(value!="" && !pattern.test(value)){
                	check = false;
                }
                return check;
 
        }, "Veuillez saisir un montant composé au maximum de 10 chiffres avant la virgule et de 3 chiffres après la virgule.."
    );


Mon problème est le suivant :
Quand j'ai deux champs avec formats incorrects, et que j'efface l'un de ces deux champs, je perds mon message d'erreur alors qu'il doit m'afficher un nouveau message celui du format incorrect

Merci d'avance de votre aide.