目前jQuery網站上已經有了From的驗證框架,FromValidation,但是一直覺得它的框架并不好用,因為重復寫的東西太多了。
于是就再次寫了自己的JavaScript驗證框架,完全廢棄掉以前的。
在新的框架下,是以這樣子的用法設計的:
首先,要包括自己的js文件(這點不必說),而且在包括自己寫,要先包括jQuery的,如下
<link rel="stylesheet" type="text/css" href="<ww:url value="/layout/css/style.css"/>">
<link rel="stylesheet" type="text/css" href="<ww:url value="/layout/css/thickbox.css"/>" media="screen">
<script type="text/javascript" src="<ww:url value="/layout/js/jquery-latest.js"/>"></script>
<script type="text/javascript" src="<ww:url value="/layout/js/thickbox.js"/>"></script>
<script type="text/javascript" src="<ww:url value="/layout/js/wingel.js"/>"></script>
<decorator:head/>
然后在要驗證的Form里面加個屬性validatable=true,如下:
<form id="registerForm" action="user-register.action" validatable="true">
注意,這邊不要加onsubmit方法
接下來,就好了,比如說有個輸入框:
<ww:textfield name="name" id="name"/>
我想驗證,讓它必填,如下就可以了:
<label for="name" validate="required">請填寫名稱</label> 其中 for屬性里面填的要是驗證的輸入框id,validate填的是驗證方法,;label里面的文本就是驗證不過的時候要顯示的信息。
如果我想驗證一個輸入框的輸入值長度怎么辦,這樣子就行了
<label for="password" validate="lengthRange:6;20">
后面的參數用;號隔開,驗證的方法名跟參數用: 隔開。
wingel.js里面已經包括了一些常用的驗證方法,現在問題來了,如果要自定義驗證方法怎么辦,如下辦:
比如你想加個驗證方法是hello
則label里面的validate屬性寫成hello,
然后加一個JavaScript方法:
<script type="text/javascript">

wingel.validator.rules.hello= function(value, element, parameters,utility) ...{
... }
</script>
里面三個參數,shit , couldn't input Chinese. now English will be used.
The first parameter is the value of the input element you want to validate,the second one is the validated element, the third one, is the parameters you add in validate label, the last one, is a utility class, you can invoke its method to make your code easier.

文章來源:
http://blog.csdn.net/Wingel/archive/2006/11/26/1414856.aspx