【原创】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 菜鸟请教各位大侠,JQuery做的树形菜单为什么不成功? 有没有办法隐藏文本框中的闪烁光标 [转][Javascript基础学习之练习题]怎样在JS中打印变量? 【分享】这几天学jquery,刚写了个可编辑表格,求批评…… 求当当网导航菜单样式 获取table控件的属性 各位老师帮帮忙,怎么动态去添加图片的显示完整图片的链接 textarea内值得的移动问题? 请高手指点把javascript数组数据保存在application的方法 日期时间问题,高分求解 谁有可多选择的树 如何实现批量上传文件(包括前台),急!谢谢
除优点外,有以下想法,不知是否合理.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