这可能非常明显,但它不起作用!我得到:TypeError: $(...).validate is not a function
并且Firebug指向我:
email: "请输入有效的电子邮件地址",
<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>
难道是我实际上并没有提交表单,而是在 ajaxing 一些数据?
<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>