0

Я использую Sitecore 7.2 с веб-формами для маркетологов 2.4. Используя конструктор форм wffm, я создал форму, в которой есть дроп. Я хочу, чтобы иметь возможность скрывать или отображать другое поле в той же форме, что и выбранное значение droplist. В ходе моего исследования я приступил к экспорту формы (через экспорт дизайнера форм) и указав подслою на экспортированную форму. Затем я добавил событие onChange для дробителя.IS Доступ к DropList Значение Sitecore WFFM Control в Javascript возможно?

<cc3:droplist runat="server" title="Country" emptychoice="True" id="field_xyz" cssclass="scfDropListBorder fieldid.%7bxyz%7d name.Country" controlname="Country" fieldid="{xyz}" enableviewstate="False" onchange="checkField()"> 

Я добавил javascript в начало страницы.

function checkField() { 
 
    alert("Hello! I am an alert box!!"); 
 
    var a = document.getElementById("field_xyz"); 
 
    alert(a.options[a.selectedIndex].value); 
 
    var cityTextBox = document.getElementById("field_abc").parentNode.parentNode; 
 
    if (a == "United States") { 
 
    cityTextBox.style.display = "block"; 
 
    } else { 
 
    cityTextBox.style.display = "none"; 
 
    } 
 
    alert("Ending Script"); 
 
}

я могу получить 'Привет!' предупреждение, чтобы показывать каждый раз, но не предупреждение «окончание», а значение «a» всегда равно нулю из того, что я могу сказать.

Является ли то, что я пытаюсь сделать даже в Sitecore?

Я прочитал что-то еще, что сказал, что у них есть проблема из-за инкапсуляции и уровней защиты. Я также могу подтвердить, что, когда я отправляю форму, она отображается в отчетах WFFM, поэтому я знаю, что она правильно отправляется.

Любая помощь/совет/направление будут оценены.

ответ

1

Я никогда не использовал функции экспорта, поэтому не могу прокомментировать его эффективность или простоту использования. Мое предложение было бы просто использовать из пользовательских классов CSS и jquery на интерфейсе, чтобы скрыть/показать в зависимости от выбранного значения.

  1. Создайте 2 новых класса css под /sitecore/system/Modules/Web Forms for Marketers/Settings/Meta data/Css Classes. Назовите их «спрятать-зависимые» и «зависимые поля»
  2. Добавьте свои поля, а затем в поле страны выберите «скрыть зависимые» как класс CSS, а для City выберите «зависимое поле»
  3. Добавить следующий Javascript для ваших сайтов js-файлов.

Код привяжет обработчик к огню в обмене, проверит выбранное значение, а затем скроет/покажет все поле с классом dependent-field. Указание привязки field-border гарантирует, что мы скрываем всю строку, а не только поле выбора.

(function ($) { 
    var HideDependentFied = function (value) { 
     var condition = (value == "USA"); 
     $(".dependent-field.field-border").toggle(condition); 
    }; 

    $(document).ready(function() { 
     var $field = $(".hide-dependent.field-border select"); 
     $field.on("change", function() { 
      HideDependentFied(this.value) 
     }); 
     HideDependentFied($field.val()); 
    }); 
})($scw); 

Приведенный выше код использует Immediately Invoked Function Expression и принятие составляет $ SCW, которая является переменной JQuery используется WFFM.

Возможно, вы также захотите запустить функцию на документе, чтобы убедиться, что поле скрыто от нагрузки и отображается только при выборе соответствующего значения.

+0

Я играл с этим весь день и до сих пор не могу заставить его функционировать. Если я поставлю предупреждение («привет»); сразу после (function ($) {, я вижу сообщение на каждой загрузке страницы, поэтому я знаю, что он может видеть скрипт. Я заменяю эту строку HideDependentFied (this.value) на предупреждение («hi2»), просто чтобы увидеть, –

+0

Вам нужно будет проверить селектор jQuery '$ (". hide-dependent.field-border select ")', чтобы убедиться, что он соответствует любому ваша разметка, я протестировал это в Sitecore 8, и поэтому разметка может быть разной – jammykam

 Смежные вопросы

  • Нет связанных вопросов^_^