最近想做一个表单验证的框架供项目使用。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的提示消息" >
另一个是单独的校验。【单独控件校验】现在有几个问题。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="{required:true,minlength:5,messages:{required:'请输入内容'}}"
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);
}
}
}
试试
觉得能符合我们框架的基本需求。
不过可以扩展自己的方法。也有相对应的国际化信息提示。
我问的问题api里也都有介绍。
故结贴。