LoginSignup
1
0

More than 5 years have passed since last update.

zend formでMultiCheckboxのlabelにclassを追加する方法

Posted at

業務でZendFramework1にあるZendFormをよく使うが、
multiCheckboxを使うときに、labelにCSSを追加したい!と思っていて調べたらできたのでメモ。

結論

setAttribsに「label_○○」でlabelへ追加ができる。

php側でformを作成する。
普通にsetAttribsに’class’追加すると、、、

$element = clearElements('multiCheckbox', 'hoge');
$element->setLabel('ほげ');
$element->addMultiOptions(array(
   '1' => 'ほげほげ1',
   '2' => 'ほげほげ2',
));
$element->setAttribs(array(
  'class' => 'hoge',
));
$this->addElement($element);
<label id="hoge-1"><input name="hoge[]" id="hoge-1" class="hoge" type="checkbox">ほげほげ1</label>
<label id="hoge-2"><input name="hoge[]" id="hoge-2" class="hoge" type="checkbox">ほげほげ2</label>

inputタグの要素にclassを追加できる。
が、やりたいのはlabelの方にclass追加すること。
で公式サイト見てたらそれっぽいのを見つけたので試したらできた。

setAttribsに追加するキーを’label_class'へ変更する。

$element = setAttribs(array(
  'label_class' => 'hoge', 
));

と書くと、無事にlabelに要素追加ができる!

<label id="hoge-1" class="hoge"><input name="hoge[]" id="hoge-1" type="checkbox">ほげほげ</label>
<label id="hoge-2" class="hoge"><input name="hoge[]" id="hoge-2" type="checkbox">ほげほげ</label>
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0