1


0

id属性をZend_Form_Decorator_Labelに追加する

Zend Form Elementのラベルフィールドにid属性を追加したいのですが、デコレータプロパティで「id」⇒「namelabel」を設定すると、 id = 'namelabel'

$name = new Zend_Form_Element_Text('name');
$name->setLabel('Business Name:');
$name->addDecorator('Label',array('class'=>'form_label', 'id'=>'namelabel'));
$name->addDecorator('HtmlTag',array('tag'=>'span','class'=>'form_inputs'));
$name->setOrder(1);
$name->size='40';

レンダリング

Business Name:

レンダリングしたいとき

Business Name:

これでも可能ですか?

1 Answer


2


ラベルの「for」は「input」の「id」と同じでなければならないため、ZFが行っていることは正しいです。 したがって、これを別のものに変更しないでください。

やってみました:

$name->addDecorator('Label',array('class'=>'form_label', 'id'=>'name'));

さらに重要なのは、なぜこれを行う必要があるのですか?

  • OPレスポンス後の編集*

「for」はこのために十分に一意である必要があります。「id」を設定する必要がないため、ZFコードを以下に変更できます。

$name = new Zend_Form_Element_Text('zf_element_name');
$name->setLabel('Business Name:');
$name->addDecorator('Label',array('class'=>'form_label'));
$name->addDecorator('HtmlTag',array('tag'=>'span','class'=>'form_inputs'));
$name->setOrder(1);
$name->size='40';

次に、あなたのjavascript、jQueryを使用している場合はこれを行うことができます

$("label[for='zf_element_name']").html("Some new Label text");