这可能是非常明显的,但它不起作用!我得到:TypeError:$(…).validate不是一个函数,Firebug指出我:
电子邮件:“请输入有效的电子邮件地址”,
<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>
可能是因为我实际上并没有提交表格,而是在调整一些数据?
<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>
解决方法
我是有史以来最大的假人.尽管如此,也许这将有助于其他人.
问题是我在同一页面上包含了两个不同版本的jQuery:1.9.0和1.10.2
非常感谢大家的帮助!