jQuery验证未验证表单,但未引发错误

jQuery验证未验证表单,但未引发错误,jquery,validation,jquery-validate,Jquery,Validation,Jquery Validate,我将jQuery验证与jQuery Mobile一起用于移动应用程序。多年来,我一直试图得到这项工作,但看不出有什么问题。本质上,表单提交时不会触发任何验证 我已经回溯了一段时间,从上的示例页面复制了jquery和validate.js的版本。仍然不起作用:( $.validator.setDefaults({ submitHandler:function(){alert(“submitted!”);} }); $().ready(函数()){ //提交评论表单时验证该表单 //$(“#com

我将jQuery验证与jQuery Mobile一起用于移动应用程序。多年来,我一直试图得到这项工作,但看不出有什么问题。本质上,表单提交时不会触发任何验证

我已经回溯了一段时间,从上的示例页面复制了jquery和validate.js的版本。仍然不起作用:(


$.validator.setDefaults({
submitHandler:function(){alert(“submitted!”);}
});
$().ready(函数()){
//提交评论表单时验证该表单
//$(“#commentForm”).validate();
//在键盘上验证注册表格并提交
$(“#注册表”).validate({
规则:{
用户名:{
要求:正确,
最小长度:2
},
密码:{
要求:正确,
最小长度:5
},
密码2:{
要求:正确,
最小长度:5,
equalTo:“#密码”
},
电邮:{
要求:正确,
电子邮件:真的
},
},
信息:{
用户名:{
必需:“请输入用户名”,
minlength:“您的用户名必须至少包含2个字符”
},
密码:{
必填:“请提供密码”,
minlength:“您的密码长度必须至少为5个字符”
},
密码2:{
必填:“请提供密码”,
minlength:“您的密码长度必须至少为5个字符”,
equalTo:“请输入与上述相同的密码”
},
电子邮件:“请输入有效的电子邮件地址”
}
});
表单正在用PHP进行初始化:

       echo "<form id=\"signupForm\" action='".$_SERVER['PHP_SELF']."' method=\"post\">";
echo”“;

至少在IE中,可能会引起问题的一件事是规则结构的最后一个“email”元素后面的逗号。结构中的最后一个元素后面不应该有逗号。

您的js代码似乎无效,下面是有效的代码

$.validator.setDefaults({
     submitHandler: function() { alert("submitted!"); }
 });

 $().ready(function() {
     // validate the comment form when it is submitted
     //$("#commentForm").validate();

     // validate signup form on keyup and submit
     $("#signupForm").validate({
         rules: {
             username: {
                 required: true,
                 minlength: 2
             },
             password: {
                 required: true,
                 minlength: 5
             },
             password2: {
                 required: true,
                 minlength: 5,
                 equalTo: "#password"
             },
             email: {
                 required: true,
                 email: true
             }
         },
         messages: {
             username: {
                 required: "Please enter a username",
                 minlength: "Your username must consist of at least 2 characters"
             },
             password: {
                 required: "Please provide a password",
                 minlength: "Your password must be at least 5 characters long"
             },
             password2: {
                 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"
         }
     });});
您在规则->电子邮件块(最后一个)中添加了“逗号”,这就是代码无效的原因

电子邮件:{必需:true, 电子邮件:true}

应该是

电子邮件:{必需:true,
电子邮件:真的}

啊,这么小的一件事!在Firebug中没有出现:(这会显示错误消息,但如果必填字段为空,我无法阻止它提交表单。有什么想法吗?提交处理程序部分似乎根本不起作用,如果我提交表单,警报框不会弹出,但表单仍会提交。因此,即使内容无效,表单也会提交:(已排序。似乎jQuery Validate仅适用于jQuery.mobile-1.0a2!感谢您的帮助。根据上面的Clyde Lobo代码进行了修复。如果出现错误,仍无法让其停止提交。
$.validator.setDefaults({
     submitHandler: function() { alert("submitted!"); }
 });

 $().ready(function() {
     // validate the comment form when it is submitted
     //$("#commentForm").validate();

     // validate signup form on keyup and submit
     $("#signupForm").validate({
         rules: {
             username: {
                 required: true,
                 minlength: 2
             },
             password: {
                 required: true,
                 minlength: 5
             },
             password2: {
                 required: true,
                 minlength: 5,
                 equalTo: "#password"
             },
             email: {
                 required: true,
                 email: true
             }
         },
         messages: {
             username: {
                 required: "Please enter a username",
                 minlength: "Your username must consist of at least 2 characters"
             },
             password: {
                 required: "Please provide a password",
                 minlength: "Your password must be at least 5 characters long"
             },
             password2: {
                 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"
         }
     });});