表单验证工具jquery.validate.js 用起来很方便,但是有时候,用了这个用具发现并不能完全满足自己的需求,这时就想起来用onsubmit验证。
eg:表单有 账号、密码、重复密码、email四个输入框。在onsubmit的方法中,用多个if判断,一个不合法就return false;
form的 onsubmit=“return onSubmitCheck()”
onSubmit 的js方法:
function onSubmitCheck(){
//验证账号,省略
//验证密码两次是否一致
if(!pasEqual()){
return false;
};
// 验证邮箱
if(!emailCheck()){
alert("email");
return false;
};
with(document.forms[0])
{
action="<%=request.getContextPath()%>/accountManager/insertAction.do";
submit();
}
}
前面的验证账号,密码,都好使,但是验证邮箱的时候,尽管提示邮箱不合法,但是发现ie8下狂点提交,居然邮箱不正确,也提交了过去。即:return false,却提交了。ie10不会出现,ie8不行。
onSubmitCheck改了多次还是不行,最后用了下面的方法解决了
html代码:
<script src="jquery-1.7.2.js" type="text/java script"> <script src="jquery.validate.min.js" type="text/java script">html>Insert title here
java script代码:(放到html的标签下面后面就可以)
<script>
$(function(){
//指明校验什么表单
//$("#myform").validate();
//maojd update date:2014/2/11 10:33 onsubmit一起使用在ie8下有问题。所以改成这种方式。在validate通过之后从新验证自己需要验证的值
$("#myform").validate({
onsubmit:true,// 是否在提交时验证,默认也是true
//validate外部js验证通过之后,点击提交表单回调 此函数
submitHandler: function(form) {
//验证密码两次是否一致
if(!pasEqual()){
return false;
};
// 验证邮箱
if(!emailCheck()){
//alert("email");
return false;
};
//alert("真的提交 ");
with(document.forms[0]){
action="bbb.jsp";
submit();
}
//form.submit();提交表单,如果不写,即便通过表单也不会自动提交
},
//不通过,点击提交回调此函数
invalidHandler: function(form, validator) {
//alert("not pass验证没有通过");
return false;
},
});
});
/* maojd update 邮箱验证中文 */
function emailCheck(){
var email = document.getElementById("email").value;
if(isValidTrueName(email)){
return true;
}else{
return false;
}
}
function isValidTrueName(temp){
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
return reg.test(temp);
}
//moajd update 添加手动验证 密码是否一致
//验证密码是否一致,一致返回true.否则返回false
function pasEqual(){
var mypassword = $("#mypassword").val();
var repassword = $("#repassword").val();
//alert(mypassword + "." + repassword+"是否一样" + (mypassword==repassword));
if(mypassword==repassword){
return true;
}else{
return false;
}
}
验证方法会继续学习,继续更新
在此致谢:
jquery---------validate和onsubmit同时使用:http://zhchx0827.iteye.com/blog/1402290
jquery validate.js表单验证的基本用法入门:http://www.jb51.net/article/23420.htm
jquery.Validation.js 学习笔记 [待更新](API 和 DEMO等):http://blog.csdn.net/lxbin/article/details/4169965