【原创】JSValidation验证框架1.0b1发布 写久了Java,写起JavaScript居然不知不觉应用了OO思想,呵呵不过最不适应的是JS中没办法实现多态,只能用typeof参数来判断了,郁闷 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 除优点外,有以下想法,不知是否合理.1.那个validation-config.xml文件用起来比较烦.因为写这一个文件时,还要将各个input\form\select\textarea的名字都找出来.然后再对应.-----这些属性(required\integer\double等)如果随对象定义时定义,可能要方便一些.如:<input type="text" name="username" size="20" display-name="用户名" required=true contentType=commonChar maxlength=50 >2.只有textarea的maxlength才需要重载.3.validation-framework.js看起来比较乱,最好把它分成两部分.一部分是公用的,写成js文件用来包含;另一部分随各个而页面变化,比如这一句:file = ValidationRoot + "validation-config.xml";4.有关errorStr的细微意见:如果错误太多,最好只显示十条|或二十条错误,没必要都显示出来 另外还有一个问题:有些验证无法做到(或目前没有做到)用公用验证方法验证例如一个日期应该比另一个日期大.这种验证可能只能由该页面的编码者自已加上去.对于这种自己加上去的验证,提示风格最好能比较容易的做到与公用验证的提示风格一致.目前的这个validation-framework.js的第二种提示方式就很难做到这一点.以上! 多谢JK_10000的意见!对于你提出的几点,我的想法如下:1 在编写Web Form的时候就编写对应的xml文件是一个比较好的做法。不过你说的场景依然存在,比如维护的时候。对于将验证属性附加在html属性的做法,我觉得不太合适。原因之一不符合HTML规范,原因之二是不便于定义。个人觉得将这些depend独立定义应该比较符合人的直接思维,简单,容易理解。2 对于某些字段,比如密码长度不超过8位,maxlength是必要的。3 呵呵,为了方便调用,所以validation-framework.js整合在一个js中。实际上这个js包括了虚拟的Form的一堆对象,跨浏览器的XML调用,ErrorString显示等几大部分。用户只要包含一个js就够了。对于你所说的分成两部分我不太理解。4 在刚开始设计<form>节点的时候,本来有show-type的属性的——即显示错误的方式,是一条还是多条。后来不知道怎么了头发昏,把这去掉了。你提的建议很好,如果错误太多,最好只显示十条|或二十条错误,没必要都显示出来最后你提的一点我觉得最重要。我仔细想了想,目前的这个validation-framework.js很难自定义验证函数并实现相同的提示风格。看来该好好想想扩展性了多谢多谢! 6 JSValidation支持的13种验证:integer: 没有或者必须为整数 无参数 double: 允许为空或者必须为double数 无参数 integerRange: 整数范围必须在参数0和参数1之间。 param0和param1必须能被转化成整数 doubleRange: double数的范围必须在参数0和参数1之间 参数0和参数1必须能被转化成Float。 ---------------以上如果参照数据库对类型的定义,把integer和double合并可能更适用一点: a:定义整数: 长度不大于10的整数:contentType="Number10"; 长度不大于9的整数:contentType="Number9"; b:定义小数: 小数点前最多有2位,小数点后最多有2位:contentType="Number4.2"; 小数点前最多有3位,小数点后最多有2位:contentType="Number5.2"; 小数点后最多有4位,并小小于0.1:contentType="Number3.4";(通常用不上) 1000以内,并且是100的整数:contentType="Number1.-2";(通常用不上) c:定义输入范围:将integerRange\doubleRange二者合为一个:numberRange: 俺也写过一些努力做到通用点的东西.欢迎指教交流.不过俺没有编写使用说明.1.类型验证(为求简单,便在blur时验证,可能不大合适)http://jkisjk.vip.sina.com/html/AttachEventWithJs.htm2.必须输入验证及其它前台常用函数http://jkisjk.vip.sina.com/html/DemoForJSFunction.htm 关闭页面后自动清除cookie jquery绑定带参数的匿名函数 请教一个JQ clone的问题 找某html节点下面子元素节点的问题 各位过来看一下,DATAGRID的JS问题 请教一个比较基础的小问题 怎样使下拉框中的<option>aaa</option>居中显示?其它几项很长,第一项aaa靠在左侧太难看了!能否让aaa居中? 我想让Table中的各边框显示为黑细线,如同word中画出的效果,style如何写? 哪位有经验的高手推荐几本JavaScript的好书,我马上要工作了,急! 请问lanbor(兰波)还在么? 谁有可多选择的树 如何实现批量上传文件(包括前台),急!谢谢
除优点外,有以下想法,不知是否合理.1.那个validation-config.xml文件用起来比较烦.因为写这一个文件时,还要将各个input\form\select\textarea的名字都找出来.然后再对应.-----这些属性(required\integer\double等)如果随对象定义时定义,可能要方便一些.
如:<input type="text" name="username" size="20" display-name="用户名" required=true contentType=commonChar maxlength=50 >2.只有textarea的maxlength才需要重载.3.validation-framework.js看起来比较乱,最好把它分成两部分.
一部分是公用的,写成js文件用来包含;
另一部分随各个而页面变化,比如这一句:file = ValidationRoot + "validation-config.xml";4.有关errorStr的细微意见:如果错误太多,最好只显示十条|或二十条错误,没必要都显示出来
有些验证无法做到(或目前没有做到)用公用验证方法验证
例如一个日期应该比另一个日期大.
这种验证可能只能由该页面的编码者自已加上去.
对于这种自己加上去的验证,提示风格最好能比较容易的做到与公用验证的提示风格一致.目前的这个validation-framework.js的第二种提示方式就很难做到这一点.以上!
1 在编写Web Form的时候就编写对应的xml文件是一个比较好的做法。不过你说的场景依然存在,比如维护的时候。对于将验证属性附加在html属性的做法,我觉得不太合适。原因之一不符合HTML规范,原因之二是不便于定义。个人觉得将这些depend独立定义应该比较符合人的直接思维,简单,容易理解。2 对于某些字段,比如密码长度不超过8位,maxlength是必要的。3 呵呵,为了方便调用,所以validation-framework.js整合在一个js中。实际上这个js包括了虚拟的Form的一堆对象,跨浏览器的XML调用,ErrorString显示等几大部分。用户只要包含一个js就够了。对于你所说的分成两部分我不太理解。4 在刚开始设计<form>节点的时候,本来有show-type的属性的——即显示错误的方式,是一条还是多条。后来不知道怎么了头发昏,把这去掉了。你提的建议很好,如果错误太多,最好只显示十条|或二十条错误,没必要都显示出来最后你提的一点我觉得最重要。我仔细想了想,目前的这个validation-framework.js很难自定义验证函数并实现相同的提示风格。看来该好好想想扩展性了多谢多谢!
integer: 没有或者必须为整数 无参数
double: 允许为空或者必须为double数 无参数
integerRange: 整数范围必须在参数0和参数1之间。 param0和param1必须能被转化成整数
doubleRange: double数的范围必须在参数0和参数1之间 参数0和参数1必须能被转化成Float。 ---------------
以上
如果参照数据库对类型的定义,把integer和double合并可能更适用一点:
a:定义整数:
长度不大于10的整数:contentType="Number10";
长度不大于9的整数:contentType="Number9";
b:定义小数:
小数点前最多有2位,小数点后最多有2位:contentType="Number4.2";
小数点前最多有3位,小数点后最多有2位:contentType="Number5.2";
小数点后最多有4位,并小小于0.1:contentType="Number3.4";(通常用不上)
1000以内,并且是100的整数:contentType="Number1.-2";(通常用不上)
c:定义输入范围:将integerRange\doubleRange二者合为一个:numberRange:
不过俺没有编写使用说明.
1.类型验证(为求简单,便在blur时验证,可能不大合适)
http://jkisjk.vip.sina.com/html/AttachEventWithJs.htm
2.必须输入验证及其它前台常用函数
http://jkisjk.vip.sina.com/html/DemoForJSFunction.htm