forms - 如果不适用,则跳过表单的非现有 session

标签 forms coldfusion form-submit

我拥有的是一个表单网站页面,它将使用从表单网站页面输入的信息自动填写所需的表单。我想弄清楚的是,如果 #session.checkout.info.firstname_2# 不存在,如何跳过它而不让表单担心它?

因此,有两个字段,一个用于所有者,另一个用于共同所有者,如果只有一个所有者,则页面不会打开表单,因为它正在寻找要输入为 firstname_2 的内容,但是如果所有者和共同所有者都被输入,则效果很好,因为所有字段都被输入。有谁知道我如何才能让它只关心从第一个表单提交的字段并忽略尚未输入的 session ?

<cfif len(#session.checkout.info.firstname_2#)>
    <cfpdfformparam 
      name="co-owner name" 
      value="#session.checkout.info.firstname_2# #session.checkout.info.middlename_2# #session.checkout.info.lastname_2#">
</cfif>

最佳答案

您可以使用isDefined来检查该变量是否不存在。

<cfif isDefined("session.checkout.info.firstname_2")>
  <cfpdfformparam 
    name="co-owner name" 
    value="#session.checkout.info.firstname_2# #session.checkout.info.middlename_2# #session.checkout.info.lastname_2#">
</cfif>

如果您还需要检查长度,您可以将上述内容与您编写的内容结合起来。

通常,使用 structKeyExists() 是更好的做法,但是当有多个可能不存在的项目时,它可能会很麻烦,即 structKeyExists(session, 'checkout') && structKeyExists( session.checkout, 'info') && structKeyExists(session.checkout.info, 'firstname_2')

关于forms - 如果不适用,则跳过表单的非现有 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27863462/

相关文章:

javascript - 从 TextArea 运行 JavaScript

android - 当固定位置的文本输入表单字段获得焦点时,如何防止疯狂滚动?

php - 在PHP中获取提交按钮的名称

javascript - 模态中的推特 Bootstrap 3.x 表单

html - 无论屏幕大小如何,都可以在 HTML 表单中正确间隔输入字段?

security - 如何使用 ColdFusion 的 IIS URL 重写从头响应中删除服务器头和其他变量?对于 IIS(8 及以上版本)

mysql - 从多个 MySQL 表中选择字段,(1=2) 是什么意思?

javascript - 如何使用 iframe 组织我的应用程序的主页?

javascript - chrome/safari(webkit?)在通过 Javascript .submit() 提交时不发布值

ajax - ASP .NET MVC 3 - 如何提交嵌套在 html 表单中的 ajax 表单