面向营销人员的 Sitecore Web 表单:更改生成的字段 Name/ID

Sitecore Web form for marketers: Change Name/ID of fields that is generated

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

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

我正在尝试将字段数据存储到 Web 缓存中,并且越来越难以使用 Request.Form[]

来定位这样的 IDs/Name

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

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

此图显示 Form Designer

左侧的验证部分

此验证在线发生,在提交表单之前,或在提交单击事件时发生。

您甚至可以创建自己的 Field Validators,也可以通过 Form Designer 应用。我最近写了另一个 可以帮助你。

另一个选项是扩展或创建您自己的 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 中做一些额外的工作才能让您的新 SaveAction 为 WFFM 选择,但我已经在关于 Custom Save Actions 的博客中对此进行了介绍,它非常简单

我不确定您可以在操作 FieldId 方面走多远,但这是一种检查和使用字段及其值的简单方法。