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