Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

業務で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>
m-m00
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away