Conflit entre deux codes jQuery
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:
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:
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());
}
});
}); |