[英]How to add class and id to form element in Zend Framework 2.2.4
我需要的HTML:
<label for="text_field_username">User Name</lable>
<input type="text" id="text_field_username" name="text_field_username" class="form-control" />
我希望标签的for链接到输入的id。 这样,用户可以单击标签以突出显示输入。 对于复选框更有用。 另外,不太重要,我希望在输入字段中有一个类。
我尝试过但对我不起作用:
echo $this->formRow($form->get('usr_name'));
我也尝试使用局部布局。
echo $this->formElement($element);
在发布此问题之前,我遇到了这个文档framework.zend.com/manual/2.2/en/modules/zend.form.view.helpers.html#formlabel
它不起作用。 它添加了for但它没有任何意义。 !?
查看partials有助于呈现表单,但它们不会处理表单元素本身的属性。 这由表单类及其表单元素集合(即TextElement)处理。
您可以在任何表单元素上使用setAttribute('class', 'class name')
因此,在表单的init()
方法中,这应该工作:
$element = $this->getElement('text_field_username');
$element->setAttribute('class', 'class name');
你也可以在你继承的表单助手类中设置它,如下所示:
namespace Application\Form;
use Zend\Form\Form;
class NexForm extends Form
{
public function __construct($name = null)
{
parent::__construct('Nex');
$this->setAttribute('method', 'post');
$this->setAttribute(
'enctype',
'multipart/form- data'
);
$this->add(array(
'name' => 'default_widget',
'attributes' => array(
'type' => 'text',
'id' => 'default_widget',
'class' => 'mtz-monthpicker-widgetcontainer',
'required' => 'required',
),
'options' => array(
'label' => 'Please choose the month of records you want to display:',
),
));
}
}
并在您的视图中致电:
$nex=$this->app; //app is the form object we passed from controller to view
echo $this->formElement($nex->get('default_widget'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.