写久了Java,写起JavaScript居然不知不觉应用了OO思想,呵呵不过最不适应的是JS中没办法实现多态,只能用typeof参数来判断了,郁闷

解决方案 »

  1.   


    除优点外,有以下想法,不知是否合理.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的细微意见:如果错误太多,最好只显示十条|或二十条错误,没必要都显示出来
      

  2.   

    另外还有一个问题:
    有些验证无法做到(或目前没有做到)用公用验证方法验证
    例如一个日期应该比另一个日期大.
    这种验证可能只能由该页面的编码者自已加上去.
    对于这种自己加上去的验证,提示风格最好能比较容易的做到与公用验证的提示风格一致.目前的这个validation-framework.js的第二种提示方式就很难做到这一点.以上!
      

  3.   

    多谢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很难自定义验证函数并实现相同的提示风格。看来该好好想想扩展性了多谢多谢!
      

  4.   

    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:
      

  5.   

    俺也写过一些努力做到通用点的东西.欢迎指教交流.
    不过俺没有编写使用说明.
    1.类型验证(为求简单,便在blur时验证,可能不大合适)
    http://jkisjk.vip.sina.com/html/AttachEventWithJs.htm
    2.必须输入验证及其它前台常用函数
    http://jkisjk.vip.sina.com/html/DemoForJSFunction.htm