【问题标题】:Sitecore Web form for marketers: Change Name/ID of fields that is generated面向营销人员的 Sitecore Web 表单:更改生成的字段的名称/ID
【发布时间】:2015-08-07 02:49:14
【问题描述】:

是否可以为每个字段实际更改 WFFM 生成的<input id=**"[ID]"** name=**"[name]"** />? 还是总是必须这样?

注意:这要求它不能导出到 ascx 文件并进行修改。

我正在尝试将字段数据存储到 Web 缓存中,并且越来越难以使用 Request.Form[] 来定位此类 ID/名称。

【问题讨论】:

  • 你想要达到什么目的?可能还有另一种方法不需要您更改 WFFM 生成字段的方式
  • 只是对它的功能和自定义感到好奇。我希望能够操作字段 ID 以检查输入值是否为空或在提交时填充。
  • 我添加了一个答案,其中包含两种可能的方式来操作一个字段,它的 Id 和 value 来验证和验证用户输入的内容。不要忘记投票/将其标记为帮助他人的答案

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


【解决方案1】:

如果您想检查输入值是否为空或在提交时填充,您有两个可用选项。

第一个是通过内容编辑器中的Form Designer 实现的。对于每个字段,您可以定义它是否为必填字段、最小/最大长度并对值应用正则表达式(Sitecore 提供了一些现成的)。您还可以完全控制验证文本以帮助指导您的用户。

这张图片显示了Form Designer左侧的验证部分

此验证在表单提交之前或在提交点击事件中在线进行。

您甚至可以创建自己的Field Validators,也可以通过Form Designer 申请。我最近写了另一个answer on how to create Custom Field Validators 可以帮助你。

另一种选择是扩展或创建您自己的Save Action,在非 Sitecore 中说出按下表单按钮时触发的提交操作。

此时您可以访问表单上的所有Fields,并对用户输入的值执行任何操作。

public class CustomFormSubmit : ISaveAction
{
    public void Execute(ID formid, AdaptedResultList fields, params object[] data)
    {

        try
        {
            // Loop through each field in the form
            foreach (AdaptedControlResult field in fields)
            {
                // Properties so you could manipulate field Id and Value
                field.Id
                field.FieldName
                field.Value

                // logic to manipulate field
            }
        }
        catch (Exception ex)
        {
            Logger.Log(ex.Message + ":" + builder, ExceptionCategory.Error);
            throw;
        }
    }

您需要在 Sitecore 中做一些额外的工作才能为 WFFM 选择新的 SaveAction,但我已经在一篇关于 Custom Save Actions 的博客中介绍了这一点,它非常简单

我不确定你可以在多大程度上操纵 FieldId,但这是一种检查和使用字段及其值的简单方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多