jquery Validierungs-Fehler: .validieren ist nicht eine Funktion

Dies ist wahrscheinlich super offensichtlich, aber es funktioniert NICHT! Ich bin immer: TypeError: $(...).validate is not a function und Firebug Punkte mir zu:

E-Mail: "Bitte geben Sie eine gültige E-Mail-Adresse",

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/additional-methods.min.js"></script>

$(document).ready(function () {

    $("#register").click(function () {
        if ($("#frmRegisterWebuser").valid() === true) {
            $("#frmRegisterWebuser").submit();
        }
    });

    $("#frmRegisterWebuser").validate({
      rules:{
             reg_email:{
                        required: true,
                        email: true
                        },
             username: {
                       required: true,
                       minlength: 3
                       },
             zipcode: {
                       minlength: 5,
                       maxlength: 5
                       },
             reg_password: {
                       required: true,
                       minlength: 5
                       },
             confpass: {
                       required: true,
                       equalTo: "#reg_password",
                       }
      },
      messages:{
         username: {
                   required: "Please enter a username",
                   minlength: "Your username must consist of at least 3 characters"
                   },
         password: {
                   required: "Please provide a password",
                   minlength: "Your password must be at least 5 characters long"
                   },
        confirm_password: {
                          required: "Please provide a password",
                          minlength: "Your password must be at least 5 characters long",
                          equalTo: "Please enter the same password as above"
                          },
        email: "Please enter a valid email address",
      },

      submitHandler:function(){
          if($("#frmRegisterWebuser").valid() === true){
            email=$("#reg_email").val();
            password=$("#reg_password").val();
            username=$("#username").val();
            zipcode=$("#zipcode").val();
            default_private=$("#private").val();

             $.ajax({
                type: "POST",
                url: "webuser_register.php",
                data: "email="+email+"&pwd="+password+"&username="+username+"&default_private="+default_private+"&zipcode="+zipcode,
                success: function(response){
                  if(response == 'Registered')
                  {
                    $("#login_form").fadeOut("normal");
                $("#shadow").fadeOut();
                $("#profilex").html("<a id='logout' href='webuser_logout.php' title='Click to Logout'>Logout</a>");

                $("#shadow").slideUp();
                $("#register_webuser").slideUp();
                  }
                  else
                  {
                    $("#reg_add_err").html("Oops, there was a problem");
                  }
                },
                beforeSend:function()
                        {
                     $("#reg_add_err").html("Loading...")
                }
            });
          }
      }

    });

});
</script>

Könnte es sein, dass ich bin nicht wirklich ein Formular, aber bin ajaxing einige Daten?

<div id="register_webuser">
<div class="err" id="reg_add_err"></div>
<form id="frmRegisterWebuser" action="login.php">
<input type="hidden" id="private" name="private" />
<label style="color:black;" for="reg_email" >Email:</label>
<input type="email" id="reg_email" name="reg_email"  />
<label style="color:black;" for="username" >Username:</label>
<input type="text" id="username" name="username"  />
<label style="color:black;" for="zipcode" >Zipcode:</label>
<input type="text" id="zipcode" name="zipcode" />
<label style="color:black;" for="reg_password" >Password:</label>
<input type="password" id="reg_password" name="password"  />
<label style="color:black;" for="confpass" >Confirm Password:</label>
<input type="password" id="confpass" name="confpass"  />
<div class="inputdata">
<label style="color:black;" title="Share your shopping lists">Share:&nbsp;</label>
<span>
<div class="flatRoundedCheckbox" style="v-align:top;">
<input type="checkbox" title="Share your shopping lists" id="share" name="share"  checked onclick="toggleShared(this.checked);" />
</span>
<label for="share" id="label_share"></label>
<div class="clear"></div>
</div>
</div>
<label></label><br/>
<a id="register" href="#" class="greenbutton" >Register</a>
<a id="reg_cancel_hide" href="#" class="greenbutton" >Cancel</a>
<label></label><br/>
</form>
</div>
  • Huh. Das ist ein Kuckucksei. Sind Sie sicher, dass jquery.validate.min.js ist der laden richtig läuft?
  • Wo ist dein HTML-markup? Jedoch, das was du gepostet hast ist was keine Fehler: jsfiddle.net/wuJeW
  • Sie brauchen auch nicht zu erfassen, das click-Ereignis der Schaltfläche Einreichen. Das Teil ist Automatik: jsfiddle.net/wuJeW/1
  • Sie haben Links die Möglichkeit, zu viel code. Wenn Sie ajax ' Ing die Daten, wo ist dann der ajax-code? Finden Sie das für die richtige Platzierung: jsfiddle.net/wuJeW/2
  • BTW, debug: true blockieren das Formular Absenden.
  • es zeigt mir in firebug, dass es immer jquery.min.js 304 in 56 ms, jquery.validate.min.js 304 in 34ms, etc etc
  • Sie brauchen nicht alle diese Klick-Handler! Setzen Sie die ajax in der submitHandler. Gemäß der Dokumentation, "das ist, wo es hingehört". Siehe: jsfiddle.net/wuJeW/4
  • aber ich bin nicht Absenden des Formulars bin ich Entsendung mit ajax von einem anchor-tag. immer noch?
  • Okay ja, aber nur, da es ein anchor-tag und nicht die Schaltfläche "senden" würde, müssen Sie eine click handler. Allerdings müssen Sie noch jede ajax in der submitHandler wie ich bereits zeigte, in meinem letzten jsFiddle: jsfiddle.net/wuJeW/4
  • Auch alle Animationen etc. oder alles, was Sie wollen, das Feuer aus einem gültigen Formular gehen würde, in die submitHandler callback-Funktion.
  • Okay, ich aktualisiert mein code und der Geige UND...die Geige ist arbeiten, aber ich bin immer DIE GLEICHE FEHLERMELDUNG, nur jetzt ist das brennen auf-> submitHandler: function()
  • Ich denke, dass das plugin nicht richtig geladen oder ist es in Konflikt mit etwas anderes...ich bin auch mit Foundation 4 auf der Seite...Irgendwelche Tipps, wie man von hier aus gehen?

InformationsquelleAutor Jen Born | 2013-11-06
Schreibe einen Kommentar