2016-12-07 77 views
0

銀色條紋顯示邏輯在CMS中的表單上完美工作,但我無法讓它在前端的表單上工作,特別是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(), 

我看到它只是需要顯示從無更改爲塊。 有沒有辦法做到這一點,以便它將保持頁面重新加載的狀態?下拉值將被保存爲數據庫條目。

編輯:這在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工作,引導窗體1.20和顯示邏輯1.0.8

1.0.8是非常過時,但。

+0

因此,如果您將'Wetsuit'下拉值更改爲'Custom',那麼Fins'字段不會顯示?你是否證實實際的下拉值包含'Custom'?也許你需要發佈你的Dropdown創建代碼。 – bummzack

+0

這是正確的。它將顯示在CMS中,但不在前端。該值確實包含「Custom」。 我看到在前端有JS錯誤。將更新OP。 – Craig

+0

我想你需要包括entwine ... – bummzack

回答

0

我不認爲你需要大多數領域的DisplayLogicWrapper ......這是爲像UploadField這樣的字段。

你試過這個嗎?

NumericField::create('Fins','Fins') 
    ->displayIf('Wetsuit') 
    ->isEqualTo('Custom') 
    ->end(), 
+0

對不起,我應該提到,我已經嘗試過,沒有'DisplayLogicWrapper' – Craig

0

不是這裏的問題,但值得注意的是,錯誤的顯示邏輯1.3和更低的存在在哪裏/模板/不/模板/表格/,引起優先級問題存在的自定義模板。

如果您在使用FieldGroup時沒有呈現正確的模板或內容時遇到問題。升級到顯示邏輯1.4將解決此問題。

+0

只是一個註釋。我降級到顯示邏輯的1.0.8版本,它的工作原理。它不使用傳統的引導主題,但它仍在工作。所以SilverStripe 3.5,引導形式1.20和顯示邏輯1.0.8的作品。相當過時,但它似乎爲我工作 – Craig

+0

我敢打賭,如果你從它複製引導項目: https://github.com/unclecheese/silverstripe-display-logic/tree/1.0.8/templates 到你的主題/ {mytheme}並升級到最新的DisplayLogic。你會有最新版本和一切工作。似乎舊版本內置Bootstrap支持。 – SilbinaryWolf

0

您需要包含jQuery和jQuery Entwine才能在前端工作。這未經測試,但應解決您的問題。

class Page_Controller extends ContentController { 
    public function init() { 
     parent::init(); 
     Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js'); 
     Requirements::javascript(THIRDPARTY_DIR . '/jquery-entwine/dist/jquery.entwine-dist.js'); 
    } 
} 
+0

謝謝,它們都已包含在內。我可以在頁面源中看到它們。 – Craig

+0

他們包括什麼樣的順序?顯示邏輯應該在jQuery和jQuery Entwine之後。 – SilbinaryWolf

+0

訂單是Jquery 1.11.3,Bootstrap Forms,Jquery Entwine,Display Logic。使用jquery 1。12投擲JS錯誤。使用1.11.3不會引發任何錯誤,但仍然不起作用。 – Craig