validate验证不管用总结

使用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是否一样

猜你喜欢

转载自blog.csdn.net/qq_41340666/article/details/80982105
今日推荐