0

Zend_Form と Decorators を使用してカスタム フォームを作成しようとしています。目的の html 形式は次のとおりです。

<form enctype="application/x-www-form-urlencoded" method="post" action="">
    <div class="login_bx">
        <div id="txtAccount-label" class="txt_field">
            <label for="txtAccount" class="required">Account ID:</label>
        </div>
        <div class="inp_field">
            <input type="text" name="txtAccount" id="txtAccount" value="" style="width:250px">
        </div>
    </div>
</form>

Zend_Form クラスの内容は次のとおりです。

$account    =   new Zend_Form_Element_Text('txtAccount');
        $account    ->  setLabel('Account ID:')
                    ->  setAttrib('style','width:250px')
                    ->  setRequired(true)
                    ->  addValidator('NotEmpty', true);

        $this->setDecorators(array(
            'FormElements',
            array(
                'HtmlTag', 
                array(
                    'tag'   =>  'div',
                    'class' =>  'login_bx',
                )
            ),
            'Form',
            array('FormErrors', array(
                'placement'                 =>  'prepend', 
                'markupElementLabelEnd'     =>  '</strong>', 
                'markupElementLabelStart'   =>  '<strong>', 
                'markupListStart'           =>  '<div class="errors_list" id="msg">', 
                'markupListEnd'             =>  '</div>', 
                'markupListItemStart'       =>  '<div class="error_item">', 
                'markupListItemEnd'         =>  '</div>'
            ))
        ));

        $this->addElements(array($account));

        $this->setElementDecorators(array(
            'ViewHelper',
            //'Errors',
            array(array(
                'data' => 'HtmlTag'
                ), array(
                    'tag'   =>  'div',
                    'class' =>  'inp_field'
                )
            ),
            array('Label', array(
                'tag'   =>  'div',
                'class' =>  'txt_field'
            ))
        ));

現在レンダリングされている html は次のとおりです。

<form enctype="application/x-www-form-urlencoded" method="post" action="">
    <div class="login_bx">
        <div id="txtAccount-label">
            <label for="txtAccount" class="txt_field required">Account ID:</label>
        </div>
        <div class="inp_field">
            <input type="text" name="txtAccount" id="txtAccount" value="" style="width:250px">
        </div>
    </div>
</form>

ラベルをラップする DIV にクラスを追加する方法がわかりませんでした

4

2 に答える 2

1

それ以外の

array('Label', array(
                'tag'   =>  'div',
                'class' =>  'txt_field'
            ))

使用する

array('Label', array(
                'tag'   =>  'div',
                'tagClass' =>  'txt_field'
            ))
于 2012-08-12T12:09:48.167 に答える
0

これを試して

$name = new Zend_From_Element_Text("txtName");
$name->setOptions(array('class'=>'css class name'));

http://forums.zend.com/viewtopic.php?f=69&t=1367

またはこれ

zendフォーム要素のラベルとエラーに特別なクラスを追加する方法は?

于 2012-08-09T12:37:52.077 に答える