2011-11-12 2 views
1

Ce code semble correct, je n'arrive pas à voir d'où provient l'erreur. Il est correctement enveloppé dans $ (document) .ready (function() {.Jquery.validate manquant: après l'ID de propriété

$("#signup-form").validate({ 
    rules: { 
     firstname: 'required', 
     signup-email: 'required', 
     signup-password: 'required', 
     signup-password-v: 'required' 
    }, 
    messages: { 
     firstname: 'Your firstname is required!', 
     signup-email: 'Your email is required!', 
     signup-password: 'A password is required!', 
     signup-password-v: 'Please verify your password!' 
    } 
}); 

j'appelle le jquery.validate après la bibliothèque jquery dans les balises head html si des idées?

html

<!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> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <link rel='stylesheet' type='text/css' href='./css/index.css' /> 
     <script type="text/javascript" src="./js/jquery-1.6.2.min.js"></script> 
     <script type="text/javascript" src="./js/jquery.validate.js"></script> 
     <script type="text/javascript" src="./js/index.js"></script> 
    </head> 
    <body> 
     <div id="navbar"> 
      <div id="title">CrockShark.com</div> 
     </div> 
     <div id="container"> 
      <div id="navcontainer"> 
       <ul id="navlist"> 
        <li>Find great Crockpot recipes</li> 
        <li>Save 'em</li> 
        <li>Post your own</li> 
        <li>See how many people like yours</li> 
       </ul> 
      </div> 
      <div id="signup"> 
       <form id="signup-form"> 
       <label>First Name:</label> 
        <input type="text" class="signup-input" id ="firstname" name="firstname" /><br /> 
       <label>Last Name:</label> 
        <input type="text" class="signup-input" id="lastname" name="lastname" /><br /> 
       <label>Birthday:</label> 
        <select id="month" name="month"> 
         <option value="1">January</option> 
         <option value="2">February</option> 
         <option value="3">March</option> 
         <option value="4">April</option> 
         <option value="5">May</option> 
         <option value="6">June</option> 
         <option value="7">July</option> 
         <option value="8">August</option> 
         <option value="9">September</option> 
         <option value="10">October</option> 
         <option value="11">November</option> 
         <option value="12">December</option> 
        </select> 
        <select id="day" name="day"> 
         <?php for ($i=1; $i<=31; $i++) { echo "<option value='$i'>$i</option>"; } ?> 
        </select> 
        <select id="year" name="year"> 
         <?php for ($i=2012; $i>=1900; $i=$i-1) { echo "<option value='$i'>$i</option>"; } ?> 
        </select><br /> 
       <label>Email:</label> 
        <input type="text" class="signup-input" id="signup-email" name="signup-email" /><br /> 
       <label>Password:</label> 
        <input type="password" class="signup-input" id="signup-password" name="signup-password" /><br /> 
       <label>Verify Password:</label> 
        <input type="password" class="signup-input" id="signup-password-v" name="signup-password-v" /><br /> 
        <input type="button" id="signup-button" name="signup-button" value="Join!" /> 
      </form> 
      </div> 
      <div id="login"> 
       <div id="login-wrapper"> 
        <label>Email:</label><input type="text" class="login" id="login-email" /><br /> 
        <label>Password:</label><input type="password" class="login" id="login-password" /> 
        <input type="button" id="login-button" value="Login" /> 
       </div> 
      </div> 
     </div> 
    </body> 
</html> 

Répondre

8

vous ne pouvez pas avoir des tirets dans les noms de propriété:

signup-email: 'Your email is required!', 

Je pense que vous pouvez envelopper ces propriétés dans citations, cependant, et obtenir l'effet désiré:

'signup-email': 'Your email is required!', 
+0

Impressionnant, vous aviez raison , Merci beaucoup! – Nathan

+0

Aucun problème [espace de remplissage]. – Blender

0

essayer de faire simple pour vérifier votre script

$(document).ready(function(){ 
$("#signup-form").validate(); 
}); 

quelques points à mentionner: -

  1. Et vous devez assurez-vous que le formulaire est soumis.

  2. assurez-vous que vous avez entrée html de soumettre le type

  3. add champ obligatoire à l'entrée

+0

J'ai changé l'entrée pour soumettre le type mais rien ne valide et je ne peux pas comprendre pourquoi. Selon firebug, toutes les bibliothèques sont en cours de chargement, mais mes messages ne s'affichent pas lorsque je soumets le formulaire. – Nathan

+0

Je me demande s'il doit faire cela mon index.js est un fichier externe? – Nathan

+0

Ça a marché! – Nathan

1

c'est la documentation du plugin de validation jquery. la renvoyer

http://docs.jquery.com/Plugins/Validation/Reference#Fields_with_complex_names_.28brackets.2C_dots.29

Si votre formulaire est constitué de champs en utilisant des noms qui ne sont pas des identificateurs JavaScript juridiques, vous devez citer ces noms lorsque vous utilisez l'option de règles:

$("#myform").validate({ 
    rules: { 
    // no quoting necessary 
    name: "required", 
    // quoting necessary! 
    "user[email]": "email", 
    // dots need quoting, too! 
    "user.address.street": "required" 
    } 
}); 
Questions connexes