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 : 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 JS :
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());
					}
				});	
				});