Silverstripe Display Logic отлично работает на формах в CMS, но я не могу заставить его работать с формами в передней части, в частности, с формами Bootstrap.Логика отображения Silverstripe для форм Front-End/Bootstrap
Он скроет элемент, но не отобразит его, когда применяется логика.
//If the wetsuit dropdown is equal to custom then show the fins numerical field.
DisplayLogicWrapper::create(NumericField::create("Fins","Fins"))->displayIf("Wetsuit")->isEqualTo('Custom')->end(),
Я вижу, что он просто нуждается в отображении, чтобы перейти от ни одного к блоку. Есть ли способ сделать это, чтобы он также сохранял состояние на странице? Выпадающее значение будет сохранено как запись БД.
EDIT: Это работает в CMS, но не работает в интерфейсе - Custom
является частью значений перечисления.
DropdownField::create("Wetsuit","Wetsuit")
->setSource(singleton('DiveEquipment')->dbObject('Wetsuit')->enumValues())
->setEmptyString('Select one'),
NumericField::create('Fins','Fins')
->displayIf('Wetsuit')
->isEqualTo('Custom')
->end(),
EDIT2: Работа с SilverStripe 3.5, Bootstrap Forms 1.20 и Дисплей Logic 1.0.8
1.0.8 очень устарели, хотя.
Так что, если вы измените значение выпадающего списка 'Wetsuit' на' Custom', поле 'Fins' не будет отображаться? Вы подтвердили, что фактические выпадающие значения содержат «Custom»? Возможно, вам нужно опубликовать свой код для создания раскрывающегося списка. – bummzack
Правильно да. Он будет отображаться в CMS, но не в интерфейсе. Значение содержит 'Custom'. Я вижу, что в передней части есть ошибки JS. Обновит OP. – Craig
Я думаю, вам нужно включить entwine ... – bummzack