jquery.validate怎么给要校验的表单元素委托事件
页面是通过ajax后来加载进去的。
你是想问怎么使用jquery.validate吗?
首先文件都引进去,在单独建一个js文件,用来调用插件。
这里以表单注册为例
$("#myform").validate({ //选择器是form表单的 rules:{ uname:{ //uname 是你的表单控件的name,这儿是用户名 required:true, //必填,固定值 minlength:5, //输入长度 remote:{ //发动ajax请求,这儿异步验证用户名是否存在 url:"index.php?m=index&f=login&a=ajax", //请求地址 type:"post", dataType:"json", data:{ uname:function(){ return $("input[name=uname]").val() //传入数据是输入框的value值 } } } }, upass:{ //密码 required:true, minlength:5 }, upass2:{ //确认密码 required:true, minlength:5, equalTo:"#pass" //是和哪个value进行对比,#pass是密码(name=upass)的id }, code:{ //此处是验证码的异步验证,根据需求 required:true, remote:{ url:"index.php?m=index&f=login&a=ajaxCode", type:"post", dataType:"json", data:{ code:function(){ return $("input[name=code]").val() } } } } }, messages:{ //此处是提示信息 uname:{ //用户名的提示信息,对应rule的属性进行设置 required:"用户名必填", minlength:"不能少于5位", }, upass:{ required:"密码必填", minlength:"密码不能少于5位" }, upass2:{ required:"必须确认密码", minlength:"密码不能少于5位", equalTo:"两次密码不一致" }, code:{ required:"验证码未填写", remote:"验证码不对" } } })
这个校验是在输入框获得焦点、失去焦点和输入的时候都会校验的吗,为什么我的怎么都没反应呢
@大高小郑: 失去焦点后会显示提示信息,你在浏览器审查元素那里找到对应的标签,有提示的时候才会显示,然后把对应的标签设置css样式,应该是这个属性
label.error{ width:2.61rem !important; color: red; position: absolute; top: 0;left:2.68rem; }
要给他定位,记得给父元素相对定位,不然就相对于浏览器定位了
@大高小郑: 要设置css样式,主要是定位,不然看不到,在浏览器审查元素中才能找到,因为他是插件里自己建立的一个元素
jq有一个 delegate 委托事件可以实现:
类似这种:
$("div").delegate("span","dblclick",function(){
$(this).text("changed by delegate!!!!");
})
span是后来js添加的
页面是通过ajax后来加载进去的和校验表单的元素委托事件有什么关系,加载是加载,事件是事件
校验表单是通过给表单内的元素绑定一些事件,我页面未加载进来,如果不使用委托事件,那么等页面加载进来的时候那些页面上的表单元素并不会被自动添加上之前的校验事件