如何在 ColdFusion 中执行提交按钮功能?

Sou*_*nya 3 coldfusion cfform

我是coldfusion的新手,请检查下面的代码

<cfif isDefined("form.submit")> 
 <cfoutput> 
     <h3>hi</h3> 
 </cfoutput> 
</cfif> 
<cfform action="#CGI.SCRIPT_NAME#"> 
  User Name:<cfinput type="Text" name="usr_nm"><br> 
  <cfinput type="Radio" name="access_flg" value="0">Admin
  <cfinput type="Radio" name="access_flg" value="1">User</br>
  <cfinput type="submit" name="submit" value="submit"><br> 
</cfform>
Run Code Online (Sandbox Code Playgroud)

但是,当我点击提交按钮时,我期待的结果是你好

我没有看到你好消息,我的代码有什么问题吗,请任何人帮助我

Adr*_*eno 5

由于您是 ColdFusion 的新手,我会立即给您一些建议:

1.不要在同一页面提交表单。

将表单提交到单独的页面进行处理。原因是,当您进入更高级的应用程序时,您需要将页面/URL 限制为仅响应适当的 HTML 动词。

您的表单页面应该响应 HTTP GET。您的表单处理页面应该只响应 HTTP POST。

2. 不要使用CFFORM。

的功能CFFORM是创建 JavaScript 验证和服务器端交互。这可以通过现代 JavaScript 库轻松完成,例如

3. 给你的表单元素一个ID,以及一个NAME

这允许在使用 JavaScript 时更容易地引用表单元素。

4. 不要将您的提交按钮命名为“提交”。

如果您想使用 JavaScript 提交表单,那么函数是submit().

例如: $('#myForm').submit();

将表单元素命名为与函数相同的名称会导致错误。

这是my_form.cfm

<form id="myForm" name="myForm" action="my_form_action.cfm" method="post">
    User Name:<input type="Text" id="usr_nm" name="usr_nm"><br> 
    <input type="Radio" id="access_flg_0" name="access_flg" value="0">Admin
    <input type="Radio" id="access_flg_1" name="access_flg" value="1">User</br>
    <input type="submit" id="my_form_submit" name="my_form_submit" value="Submit"><br> 
</form>
Run Code Online (Sandbox Code Playgroud)

5.CFOUTPUT除非你是从服务器渲染数据,否则你不需要使用。

这是my_form_action.cfm

<cfif structKeyExists(form, "my_form_submit")> 
<h3>Hi!<lt>
</cfif>
Run Code Online (Sandbox Code Playgroud)

更好的是:

<cfif (cgi.request_method IS "post") AND (structKeyExists(form, "my_form_submit"))> 
<h3>Hi!<lt>
</cfif>
Run Code Online (Sandbox Code Playgroud)