;中国 COLD FUSION 用户组; WWW.CFWINDOW.COM 
您的位置 :首页 >> CF 技巧文章 >> 阅读文章内容 [ 关闭窗口 ]      

技巧文章内容 
    在<cfform>标记中使用 OnSubmit 的一点技巧
文章作者 : spring [ spring.z@elong.com ]          Web URL : http://
上载日期 : 2000-12-26

       通常,我们会在表单提交前通过OnSubmit属性对用户的输入做一些验证。但是在cold fusion中,要在<cfform>标记中应用onsubmit,则需要注意一点技巧。
       下面借用linkfoxo的例子加以说明:

写一个简单的form:
<cfform action="" method="POST" name="form1" onsubmit="validate_data(this)">
<input type="Submit" >
</cfform>

生成html的代码如下.

<script LANGUAGE=JAVASCRIPT TYPE="text/javascript" >
<!--
function  _CF_checkform1(_CF_this)
    {
    validate_data(this);
    return true;
    }
//-->
</script>

<FORM NAME="form1" METHOD=POST onSubmit="return _CF_checkform1(this)">
<input type="Submit" >
</FORM>

考查上面的代码可以发现, 由于cold fusion自动为我们生成一段onsubmit的验证脚本,且其用_CF_this 代替了原来的this。 所以我们的验证函数就不能正常实现其功能了。 要让其能正常工作,需要作如下修改:

<cfform action="" method="POST" name="form1" onsubmit="return validate_data(form1)">
<input type="Submit" >
</cfform>

此处有两点修改,一是用form1代替了原来的this, 二是加上了return 关键字. 除此之外,还需要修改验证函数 validate_data,将其改成根据数据的有效与无效返回true 或false,而不是直接提交表单。
这样就OK了。
看一下修改后的表单执行时的代码:

<script LANGUAGE=JAVASCRIPT TYPE="text/javascript" >
<!--
function  _CF_checkform1(_CF_this)
    {
    return validate_data(form1);
    return true;
    }
//-->
</script>

<FORM NAME="form1" METHOD=POST onSubmit="return _CF_checkform1(this)">
<input type="Submit" >
</FORM>

:-)







< 联系我们 --- 中国Cold Fusion用户组>

CFUG 国内(总部):Linkfoxo    上海:CFANS    北京:Cafe,Cyberkid,liwater    沈阳:Wangking
  
哈尔滨:Baiming    浙江:梅盛松    江西:陈末
  
CFUG (国际) Nagoya(名古屋):Codeguru    新加坡:YUZI    新西兰(Auckland):Richard CHEN
Copyright 2000-2001 www.cfwindow.com.All rights reserved

;中国 COLD FUSION 用户组; WWW.CFWINDOW.COM