(接上文)
创建新的用于JavaScript校验的模板
注:大部分代码均来自webwork2.1.6,非作者编写.请基于最后发布的文件修改.
form.ftl文件的内容
| <#if parameters.validate?exists> <script language="javascript">
 function validate(element) {
 //do nothing,for simple compatibility with dwrValidator
 }
 </script>
 </#if>
 <#include "/${parameters.templateDir}/jsxhtml/form_simple.ftl" />
 <table class="wwFormTable">
 
 | 
form-close.ftl文件的内容
| </table><#include "/${parameters.templateDir}/simple/form-close.ftl" />
 <#if parameters.validate?exists><script type="text/javascript"><#rt/>
 function ${parameters.name?html}_validate() {<#rt/>
 var form = document.forms[’${parameters.name?html}’];<#rt/>
 var focus = ${parameters.name?html}_validate_actual();<#rt/>
 if (focus != null) {<#rt/>
 form.elements[focus].focus();<#rt/>
 if (form.elements[focus].type == ’text’ || form.elements[focus].type == ’textarea’) {<#rt/>
 form.elements[focus].select();<#rt/>
 }<#rt/>
 return false;<#rt/>
 } else {<#rt/>
 return true;<#rt/>
 }<#rt/>
 }<#rt/>
     function ${parameters.name?html}_validate_actual() {<#rt/>var form = document.forms[’${parameters.name?html}’];<#rt/>
 
 ${parameters.javascriptValidation}<#rt/><#rt/>
 
 return null;<#rt/>
 }<#rt/>
 </script><#rt/>
 </#if>
 
 | 
引用的form_simple.ftl的内容,修改自simple/form.ftl
| <form<#rt/><#if parameters.namespace?exists>
 namespace="${parameters.namespace?html}"<#rt/>
 </#if>
 <#if parameters.id?exists>
 id="${parameters.id?html}"<#rt/>
 </#if>
 <#if parameters.name?exists>
 name="${parameters.name?html}"<#rt/>
 </#if>
 <#if parameters.onsubmit?exists>onsubmit="${parameters.onsubmit?html}"<#rt/>
 <#else>
 <#if parameters.validate?exists>
 onsubmit="return(${parameters.name?html}_validate())"<#rt/>
 </#if>
 </#if>
 <#if parameters.action?exists>action="${parameters.action?html}"<#rt/>
 </#if>
 <#if parameters.target?exists>
 target="${parameters.target?html}"<#rt/>
 </#if>
 <#if parameters.method?exists>
 method="${parameters.method?html}"<#rt/>
 </#if>
 <#if parameters.enctype?exists>
 enctype="${parameters.enctype?html}"<#rt/>
 </#if>
 <#if parameters.cssClass?exists>
 class="${parameters.cssClass?html}"<#rt/>
 </#if>
 <#if parameters.cssStyle?exists>
 style="${parameters.cssStyle?html}"<#rt/>
 </#if>
 >
 <#-- Add portlet support -->
 <#if parameters.isPortlet?exists>
 <input type="hidden" name="wwAction" value="${parameters.wwAction?html}"/><#rt/>
 </#if>
 
 | 
如果你有自己的onsubmit,一定要调用校验器的函数,才会进行正确的校验
对应的theme.properties文件内容如下
 
注意template目录是放在源码路径下的,也就是说发布后它应该在classes目录下.
 
后记:
如果webwork2.2本身提供这个选择,就好了,不用自己辛苦改了
修改后的文件下载(随时更新,请以最新版本为准)
http://www.jscud.com/product/wwvalidator/ww22spt.jsp
 
 
  
|   | 除经特别注明外,本文章版权归JScud Develop团队或其作者所有. 署名,非商业用途,保持一致.   scud(飞云小侠)   JScud Develop
 |