2014-09-14 10 views
2

OK,Persil Form Validation Error

Je suis toujours un étudiant javascript alors j'ai besoin d'aide. J'utilise parsley.js pour la validation de formulaire, puis jquery ajax pour soumettre le formulaire. Je continue d'obtenir ce message tiède dans la console pour lier le persil à un élément existant. J'ai suivi toutes les instructions mais continue à recevoir un avertissement.

Comment puis-je me débarrasser de l'avertissement?

Code peut être vu ici: http://madmen6raphics.com/clients/marble/

merci à l'avance.

Voici le code:

HTML:

<form action='mail_form.php' data-parsley-validate id='newsletter_signup' method='post' name='newsletter_signup' novalidate> 
      <fieldset> 
       <legend>Joing our mailing list!</legend> 
       <label for='name'>name:</label> 
       <input data-parsley-minlength='5' id='name' name='name' placeholder='John Doe' required type='text'> 
       <label for='email'>email:</label> 
       <input id='email' name='email' placeholder='[email protected]' required type='email'> 
       <input name='Submit' type='submit'> 
      </fieldset> 
      </form> 

javascript.

$ ('# newsletter_signup') de persil();

+0

S'il vous plaît ajouter le HTML et javascript à votre question. Le lien que vous avez fourni ne montre pas le code et peut être considéré comme du spam. Quand vous faites cela, je vais vous aider avec plaisir. –

+0

@milz merci. J'ai ajouté le code. –

Répondre

7

vous obtenez deux erreurs de

Vous devez lier le persil sur un élément existant.

mais ces erreurs ne sont pas liées au code que vous avez publié.

Dans votre ...js/site.js vous avez le code suivant:

$(document).ready(function() { 
    $('.slider').flexslider({controlNav: false,slideshowSpeed: 3000,directionNav: true}); 
    $('input').iCheck({checkboxClass: 'icheckbox_square-yellow',radioClass: 'iradio_square-yellow',increaseArea: '20%'}); 
    $('#newsletter_signup').parsley(); 
    $('#request_a_quote').parsley(); 
    $('#contact').parsley(); 
    var form = $('#newsletter_signup'); 
    (...) 

Vous liez le persil à trois éléments avec les IDs suivants: newsletter_signup, request_a_quote et contact.

Le fait est que dans la page actuelle vous avez seulement l'élément newsletter_signup. Si vous faites un console.log($('#request_a_quote')), vous verrez un objet vide. Donc, pour résoudre votre problème, vous devez supprimer le code qui lie le persil aux éléments inexistants. Ou vous pouvez changer votre code afin de lier le persil seulement si l'élément existe. Quelque chose comme ceci:

$(document).ready(function() { 
    $('.slider').flexslider({controlNav: false,slideshowSpeed: 3000,directionNav: true}); 
    $('input').iCheck({checkboxClass: 'icheckbox_square-yellow',radioClass: 'iradio_square-yellow',increaseArea: '20%'}); 
    if ($('#newsletter_signup').length > 0) 
     $('#newsletter_signup').parsley(); 
    if ($('#request_a_quote').length > 0) 
     $('#request_a_quote').parsley(); 
    if ($('#contact').length > 0) 
     $('#contact').parsley(); 
    var form = $('#newsletter_signup'); 
    (...) 
+0

Merci les "si" les déclarations ont bien fonctionné! Je vous remercie pour l'explication claire également. –