And*_*rew 49 zend-framework zend-form zend-decorators
我正在尝试删除隐藏表单元素上的默认装饰器.默认情况下,隐藏元素显示如下:
<dt>Hidden Element Label (if I had set one)</dt>
<dd><input type="hidden" name="foobar" value="1" id="foobar"></dd>
Run Code Online (Sandbox Code Playgroud)
我不希望我的隐藏元素占用我页面上的空间.我想删除所有默认装饰器,所以我剩下的就是输入标签.
<input type="hidden" name="foobar" value="1" id="foobar">
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
isc*_*odv 50
对于隐藏字段,您只需要一个装饰器 - ViewHelper:
$field = new Zend_Form_Element_Hidden('id');
$field->setDecorators(array('ViewHelper'));
Run Code Online (Sandbox Code Playgroud)
这将只渲染输入字段,没有Dt-Dd包装和标签.
drf*_*oob 32
默认装饰器不需要加载
默认情况下,在对象初始化期间加载默认装饰器.您可以通过将'disableLoadDefaultDecorators'选项传递给构造函数来禁用它:
Run Code Online (Sandbox Code Playgroud)$element = new Zend_Form_Element('foo', array('disableLoadDefaultDecorators' => true) );
dit*_*med 24
我用这个
$element->removeDecorator('DtDdWrapper');
Run Code Online (Sandbox Code Playgroud)
摆脱特定元素周围的dt dd标签
小智 6
//基于上面 - 一个向$ this表单添加隐藏元素的简单函数
/**
* Add Hidden Element
* @param $field
* @param value
* @return nothing - adds hidden element
* */
public function addHid($field, $value){
$hiddenIdField = new Zend_Form_Element_Hidden($field);
$hiddenIdField->setValue($value)
->removeDecorator('label')
->removeDecorator('HtmlTag');
$this->addElement($hiddenIdField);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
当您有大量隐藏输入时,最佳答案如下:
$elements = $this->getElements();
foreach ($elements as $elem)
if ($elem instanceof Zend_Form_Element_Hidden)
$elem->removeDecorator('label')->removeDecorator('HtmlTag');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
54175 次 |
最近记录: |