Używam Bootstrap 3.0RC1
z CakePHP 2.3.6
. Próbując skorzystać z tych pięknie wyglądających klas, takich jak has-error
i has-warning
dla validation states, potrzebuję zmienić domyślną klasę elementów FormHelper
, która dodaje do elementu div opakowania.Jak zmodyfikować klasę błędów opakowania div przy użyciu CakePHP z Bootstrapem
tej pory używam tego kodu:
echo $this->Form->create('User', array(
'inputDefaults' => array(
'class' => 'form-control',
'div' => array('class' => 'form-group'),
'label' => array('class' => 'control-label'),
'error' => array('attributes' => array('wrap' => 'span', 'class' => 'help-block'))
)
));
echo $this->Form->input('email'));
który to na wyjście błędu:
<div class="form-group error">
<label for="UserEmail" class="control-label">Email</label>
<input name="data[User][email]" class="form-control form-error" type="email" value="[email protected]">
<span class="help-block">Email already in use.</span>
</div>
wszystko jest w porządku, poza tym, że muszę zmienić klasę error
w opakowaniu div do has-error
, więc nowe style są stosowane do label
, input
i span
. Nie udało się znaleźć dotychczas czystego rozwiązania.
Brzydkie rozwiązanie, które moim zdaniem polega na skopiowaniu stylów has-error
z Bootstrap do klasy error
w mojej aplikacji.
A nieco mniej brzydki rozwiązanie, aby dodać selektor dla danego typu błędu dz do pliku CSS Twojego bootstrap za. W ten sposób nie kopiujesz wszystkich wartości stylu, po prostu dodajesz swoje divy błędów do istniejących definicji stylu. – Derek
Inną opcją byłoby użycie javascript do zmiany klas z "error" na "has-error" w DOMREADY, ale twoja strona będzie wyglądać dziwnie do tego czasu. Naprawdę nie jest to czyste rozwiązanie. – Derek
Tak, derek, dziękuję, naprawdę nie mogę wymyślić tego, co najlepsze. –