日期:2014-05-16  浏览次数:20325 次

求教一个jquery validate的问题
最近想做一个表单验证的框架供项目使用。

js基础又不牢。

看了看jquery 的validate。提供了一些方法。不知如何扩展。



想做一个方法传递一个表单的id  然后验证表单内所有需要校验的文本或者控件。【表单内全部控件校验】
另一个是单独的校验。【单独控件校验】

现在有几个问题。

1、如何根据表单的id遍历其表单囊括的控件

比如:
<form id = "formId" >
  <input type="text" id="aa" class="required" maxlength="2" >

  <input type="text" id="bb" class="required" email="true" >
</form>


根据表单获取内部的所有需要校验的控件。



2、能否方便国际化提示消息。

能否在控件上多设置一个属性比如message="required:xxx email:yyy"  然后根据其出错的性质来提示不同的message。
例如:
<input type="text" email="true" required="true" message="required:这是required的提示消息 email:这是email的提示消息" >





------解决方案--------------------
使用class="{}"的方式,必须引入包:jquery.metadata.js

可以使用如下的方法,修改提示内容:
class="{required:true,minlength:5,messages:{required:'请输入内容'}}"


------解决方案--------------------
根据表单id获得表单的对象form后用
var elements=form.getElementsByTagName("*")可以获得该表单下的所有元素
不过可能需要检测一下这个元素是否需要验证 如果需要验证的话加一个自定义的required属性
所以
for(var i=0;i<elements.length;i++){
if(elements[i].getAttribute("required")){
var reg=new RegExp(str);
if(!reg.test(elements.value)){
var message=elements[i].getAttribute("message");
alert(message);
}
}
}
试试