使用Really_easy_field_validation_with_Prototype進行表單驗證,具體內容如下
1、第一步當然是先引入js和css文件。
<link href="${ ctx}/skin/css/validation.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="${ ctx}/scripts/prototype.js"></script> <script type="text/javascript" src="${ ctx}/scripts/effects.js"></script> <script type="text/javascript" src="${ ctx}/scripts/validation.js"></script>
2、然後我在頁面的開頭添加了如下代碼(我把這段代碼放在meta.jsp裡的,因為每個jsp都在頭部包含它。)
function afterLoaded(){ if(document.all){ var forms = document.forms; if(forms.length > 0){ for(var i = 0; i < forms.length; i++){ if(forms[i]["method:save"]) new Validation(forms[i]); } } window.clearInterval(inteval); inteval = null; } } var inteval = window.setInterval("afterLoaded();", 500 );
3、如果要對一個輸入框進行驗證,只要在他的class裡添加一些標志即可。如
復制代碼 代碼如下:<input type="text" name="payable.howMuch" value="" id="payable_howMuch" class="required validate-number"/>
這表示這個字段必填,而且需要是數字。其他的內容,看一下validation.js末尾的代碼就明白了。
4、另外我對validation.js做了點修改,因為我們的一個表單有多個submit按鈕,並且一般的只有name=method:save的按鈕被點擊時才需要觸發驗證,所以修改了驗證js。
將原來的
復制代碼 代碼如下:if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false);
改為了
復制代碼 代碼如下: if(this.options.onSubmit) Event.observe(this.form["method:save"],'click',this.onSubmit.bind(this),false);
這樣也存在問題,但對於我們現在的樣子,這個更合適些。
5、原來的css對按鈕等造成了影響,所以我把那些border的內容都去掉了。
6、這個驗證框架好像只考慮了一些情況,若要靈活使用還要花點時間具體了解了才行,還提供了callback機制,下載他的原版後,在html裡可以看到演示。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。