这可能是非常明显的,但它不起作用!我得到: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
非常感谢大家的帮助!