Bonsoir,

je débute dans l'utilisation de jQuery.validate. J'ai essayé de rajouter une fonction supplémentaire dans les règles de validation qui permet de vérifier si un chiffre est supérieur ou égal à un autre, ou non.

Cependant, j'ai des cas où le test ne fonctionne pas de manière désirée.

Voilà le code de ma page complète :
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="jQuery/jquery-1.4.2.js"></script>
<script type="text/javascript" src="jQuery/jquery.validate.js"></script>
<script type="text/javascript" src="jQuery/additional-methods.js"></script>
<style type="text/css">
 
</style>
<script>
  $(document).ready(function(){
 
jQuery.validator.addMethod("gt", function(value, element ,param) {			
    return value>=$("#" + param).val();
}, jQuery.validator.format("a must be lower than b"));
 
 
  	$("#Formulaire").validate({
		rules: {
			ubnd : {gt: 'lbnd'}
		},
		messages: {
 
		}
	});
});	
</script>
</head>
<body onkeydown="$('#Formulaire').valid();" onkeyup="$('#Formulaire').valid();">
<form class="cmxform" id="Formulaire" method="get" action="">
  <fieldset>
 
      <p>
        <label>a  :</label>
        <input name="lbnd" id='lbnd' class="required integer" value="0"/>
        </p>
        <p>
        <label>b  :</label>
        <input name="ubnd" class="required integer" value="1"/>
      </p>
 
      <input class="submit" type="submit" value="Submit"/>
 
  </fieldset>
</form>
</body>
</html>
On voit bien ma méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
jQuery.validator.addMethod("gt", function(value, element ,param) {			
    return value>=$("#" + param).val();
}, jQuery.validator.format("a must be lower than b"));
Testons là (pré-requis : jquery-1.4.2.js, jquery.validate.js, additional-methods.js) :

- a = 4, b = 1, le message "a must be lower than b" apparaît : cool !
- a = 10, b = 4, la message n'apparaît plus
et c'est le cas pour (a,b) = (20,6) aussi par exemple.

Je ne comprends pas pourquoi la règle est considérée comme validée.
Verriez vous où je me serais trompé ?