【发布时间】:2012-08-09 08:31:03
【问题描述】:
我一直在尝试使用 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 中
【问题讨论】:
标签: php zend-framework zend-form zend-decorators