使用validate验证时,发现有些input验证不管用,
比如:
readonly,disabled,:reset(type= reset),:submit,:image,hidden, display:none
标签有这些属性时,validate默认不验证,为契合业务逻辑,可以使用如下方法:
提交之前先把指定标签的属性为如上不能验证的属性去掉,
if($("#photoCover").attr("readonly")=="readonly"){
$("#photoCover").removeAttr("readonly");//提交前,去除只读属性
}
然后再提交
验证时触发validate时,再次提交时,input已经没有readonly属性,为防止与业务逻辑冲突,
在页面加载时,就给指定标签绑定光标聚焦方法,
$("#photoCover").focusin(function(){//光标聚焦
$(this).prop('readonly', true);
});
或者
$("#photoCover").mouseover(function(){//鼠标悬浮
$(this).prop('readonly', true);
});
若不是以上问题,则检查一下提交方法,
比如你输入一个input,然后光标离开会进行验证,但提交就不验证了;又或者是,哪都好好的,可就是不验证,别着急!
检测提交方式,是否是通过form表单的submit方法提交的,若是,则换成按钮的submit,
例如:
<form action="saveuser.do" id="mainForm">
<input type="text" name="username">
<input type="password" name="password">
<form>
<script>
$("#mainForm").submit();
</script>
换成:
<input id="savebtn" type="submit" value="提交">
<script>
$("#savebtn").click();
</script>
成功~
其他不管用的时候:
检查拦截器有没有拦截jquery.validate.js(路径有没有被拦截)
检查form表单的id和js方法的form表单id是否一样