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: </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 dersubmitHandler
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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin der größte dummy immer. Dennoch, vielleicht wird jemand anderes helfen.
Das Problem war, dass ich auch 2 verschiedene Versionen von jQuery auf die gleiche Seite: die beiden 1.9.0 und 1.10.2
Danke an alle die so viel für Ihre Hilfe!
In meinem Fall war ich das laden von jquery 2 mal. Kommentiert ein und begann zu arbeiten.