Веб-форма Sitecore для маркетологов: изменение имени/идентификатора создаваемых полей

Можно ли фактически изменить сгенерированный WFFM <input id=**"[ID]"** name=**"[name]"** /> для каждого поля? Или всегда так должно быть?

Примечание. Это требует, чтобы он не экспортировался в файл ascx и не изменялся.

Я пытаюсь сохранить данные поля в веб-кеше, и становится все труднее нацеливаться на такие идентификаторы/имена, используя Request.Form[]


person MightyMight    schedule 07.08.2015    source источник
comment
Чего вы пытаетесь достичь? Может быть другой подход, который не потребует от вас изменения того, как WFFM генерирует поля.   -  person Jonathan Robbins    schedule 11.08.2015
comment
Просто любопытны его возможности и настройки. Я хочу иметь возможность манипулировать идентификатором поля, чтобы проверить, является ли входное значение пустым или заполненным при отправке.   -  person MightyMight    schedule 19.08.2015
comment
Я добавил ответ, содержащий два возможных способа манипулирования полем: его I'd и значение для проверки и проверки того, что было введено. Не забудьте проголосовать / отметить это как ответ, чтобы помочь другим   -  person Jonathan Robbins    schedule 20.08.2015


Ответы (1)


Если вы хотите проверить, является ли входное значение пустым или заполненным при отправке, у вас есть два доступных варианта.

Первый достигается с помощью Form Designer в редакторе контента. Для каждого поля вы можете определить, является ли оно обязательным, минимальную/максимальную длину и применить регулярные выражения к значению (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, но я рассказывал об этом в блоге о Пользовательские действия по сохранению, это довольно просто

Я не уверен, как далеко вы могли бы зайти, манипулируя идентификаторами полей, но это простой способ проверки и игры с полем и его значением.

person Jonathan Robbins    schedule 19.08.2015