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 :
On voit bien ma méthode :
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>
Testons là (pré-requis : jquery-1.4.2.js, jquery.validate.js, additional-methods.js) :
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"));
- 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é ?
Partager