Bonsoir,
J'ai dans mon code un champ téléphone.
J'ai également 2 fonctions jQuery :
-Le 1er permet d'ajouter un champ téléphone à chaque clic sur le bouton '+'
-Le 2ème doit permettre de faire un simple contrôle sur le champ téléphone : required + Digits. C'est-à-dire qu'il est obligatoire et qu'il ne doit contenir que des chiffres.
Ces 2 fonctrions jQuery fonctionnent séparément mais pas ensemble.
J'ai essayé la fonction jQuery.noConflict(); ça ne change rien. Je pense que le code HTML qui permet d'ajouter de nouveaux formulaires fait partie du problème.
Code HTML :
Code JS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <script src="http://code.jquery.com/jquery-1.9.0.js"></script> <script src="js/jquery.validate.min.js"></script> <form id="sky-form" method="post" action=""> <div id="content"> <input type="text" name="countForms" id="countForms" value="0" /> <input type="button" value="+" id="createForms" title="Ajouter un interlocuteur"/> <div style="display:none" id="templateForms"> <input type="tel" placeholder="Tél mobile" name="tel_m" id="tel_m"> </div> <button type="submit" value="envoyer" name="valider" class="button">Valider</button> </form>
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 countForms = 0; createForms = function(){ countForms++; newForm = $( "#templateForms" ).clone().appendTo( "#content" ); newForm.show(); newForm.attr('id', 'form' + '_' + countForms); tel_m = newForm.find("[name=tel_m]"); tel_m.attr('name', tel_m.attr('name') + '_' + countForms); $('#countForms').val(countForms); } $("#createForms").on("click", function(){ createForms(); }); createForms(); $(function() { // Validation $("#sky-form").validate( { // Règles de validation rules: { tel_m: { required: true, digits: true }, }, // Messages pour validation messages: { tel_m: { required: 'Saisissez un numéro de téléphone', digits: 'Entrez seulement des chiffres' }, }, // Ajax form submition submitHandler: function(form) { $(form).ajaxSubmit( { beforeSend: function() { $('#sky-form button[type="submit"]').attr('disabled', true); }, success: function() { $("#sky-form").addClass('submited'); } }); }, // Do not change code below errorPlacement: function(error, element) { error.insertAfter(element.parent()); } }); });
Partager