【问题标题】:Webforms for marketers form fields conditional visibility dynamically营销人员的网络表单动态地形成有条件的可见性
【发布时间】:2011-10-27 16:19:43
【问题描述】:

我们正在使用 WFFM 来创建目标网页。我们的营销人员很容易使用它。现在,我们正在考虑定制它们。例如,我们有以下要求。

在我们的表单中,我们会显示居住国家/地区,但是当您选择某些国家/地区时,我们希望再显示一个名为 state/province 的下拉列表,其中包含各州。当用户选择其他国家时,我们必须隐藏state/provice 字段。我在敲我的头,我该如何开始实现这个。

谁能指导我,如何进行?

【问题讨论】:

  • 我很好奇这个问题是否会给出答案。
  • 很难相信 WFFM 没有这样的选项,不是吗?这在几乎所有营销形式中都很常见。

标签: sitecore sitecore6 web-forms-for-marketers


【解决方案1】:

尝试以下方法:

  1. 在 Sitecore 中的表单上创建 DropList 字段
  2. 添加一个名为“NA”(表示“不适用”)的选项
  3. 根据需要标记该字段
  4. 点击左侧窗格中“规则”下的“编辑”按钮
  5. 在左侧框中,向下滚动到“字段”类别,并将相关信息输入到“具体字段与具体值比较
  6. 在右侧框中,选择“操作”类别下的“隐藏元素”

【讨论】:

  • 我刚刚用 Sitecore 8 进行了测试,这仍然有效。这足以让 OP 在正确的路径上开始创建动态表单。这不是一个完整的解决方案。上面的说明展示了如何使用 WFFM 的内置规则引擎支持来创建动态表单,而无需编写任何额外的代码。
  • 好的。此解决方案不适用于 Sitecore 7.5(修订版 141003)。当我更改国家/地区下拉列表时,该规则似乎没有任何作用。
  • 我会联系 Sitecore 支持并询问他们这是否是一个错误
  • 好的。我联系了支持人员。
  • 这个解决方案的重点不是它执行元素的实际隐藏,而是它禁用元素的验证,以便您可以使用客户端代码(您的自己)没有错误。很抱歉造成混乱。
【解决方案2】:

我无法在 Sitecore 7.5(修订版 141003)上使用此功能。

我还没有尝试过以下说明,但这是我最终能够从 Sitecore 支持获得的:

报告的行为似乎是由先前注册的带有 67793 参考号的错误引起的。有关公共参考号的更多信息,请参见此处: https://kb.sitecore.net/articles/853187

请尝试应用以下补丁,看看是否有帮助:

  1. 将附加的“Sitecore.Support.401148.dll”程序集放入“\bin”文件夹。

  2. 更改项目信息规则的类型字段值(规则内容路径->类型字段值):

/sitecore/system/Settings/Rules/Definitions/Elements/Item Information/Item ID -> Sitecore.Support.Rules.Conditions.ItemConditions.ItemIdCondition,Sitecore.Support.401148

/sitecore/system/Settings/Rules/Definitions/Elements/Item Information/Item Name -> Sitecore.Support.Rules.Conditions.ItemConditions.ItemNameCondition,Sitecore.Support.401148

/sitecore/system/Settings/Rules/Definitions/Elements/Item Information/Item Template -> Sitecore.Support.Rules.Conditions.ItemConditions.WhenTemplateIs,Sitecore.Support.401148

  1. 更改“字段”规则的类型字段值(规则内容路径 ->“类型”字段值): /sitecore/system/Settings/Rules/Definitions/Elements/Fields/Field -> Sitecore.Support.Rules.Conditions.FieldConditions.WhenField,Sitecore.Support.401148

/sitecore/system/Settings/Rules/Definitions/Elements/Fields/Field is Empty -> Sitecore.Support.Rules.Conditions.FieldConditions.FieldEmpty,Sitecore.Support.401148

/sitecore/system/Settings/Rules/Definitions/Elements/Fields/Has specific Field Type -> Sitecore.Support.Rules.Conditions.FieldConditions.WhenHasSpecificFieldType,Sitecore.Support.401148

【讨论】:

  • 不幸的是,我认为这根本不能解决这个问题。我使用 ILSpy 查看了代码,还查看了 WFFM 包中包含的 javascript,似乎根本没有任何客户端逻辑。在我看来,这个“隐藏元素”项目仅用于隐藏服务器端的东西,基于渲染之前已经确定的标准。
猜你喜欢
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多