给WebWork2.2增加JavaScript客户端校验(三)

(接上文)

创建新的用于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文件内容如下

parent = xhtml

 

注意template目录是放在源码路径下的,也就是说发布后它应该在classes目录下.

 

后记:

如果webwork2.2本身提供这个选择,就好了,不用自己辛苦改了

修改后的文件下载(随时更新,请以最新版本为准)

http://www.jscud.com/product/wwvalidator/ww22spt.jsp

 

 


 
创造共用协议:署名,非商业,保持一致   除经特别注明外,本文章版权归JScud Develop团队或其作者所有.
署名,非商业用途,保持一致.   scud(飞云小侠)   JScud Develop

posted on 2005-10-03 14:42 Scud(飞云小侠) 阅读(1274) 评论(0)  编辑  收藏 所属分类: WEB


只有注册用户登录后才能发表评论。


网站导航:
 
<2005年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

公告

文章发布许可
创造共用协议:署名,非商业,保持一致

我的邮件
cnscud # gmail


常用链接

留言簿(15)

随笔分类(113)

随笔档案(103)

相册

友情链接

技术网站

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜