Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过参数删除Zend表单元素上的装饰器_Php_Zend Framework_Zend Form - Fatal编程技术网

Php 通过参数删除Zend表单元素上的装饰器

Php 通过参数删除Zend表单元素上的装饰器,php,zend-framework,zend-form,Php,Zend Framework,Zend Form,Zend会自动在其生成的表单元素周围添加标记。如何删除这些标记作为addElement函数的参数 我已尝试更改disableLoadDefaultDecorators标志,但是该元素当时根本不呈现 例如: $searchForm->addElement('text','searchText',array('class'=>'onClickClear','disableLoadDefaultDecorators'=>true)) 我认为这将有助于删除HtmlTag装饰程序: $element =

Zend会自动在其生成的表单元素周围添加标记。如何删除这些标记作为addElement函数的参数

我已尝试更改disableLoadDefaultDecorators标志,但是该元素当时根本不呈现

例如:
$searchForm->addElement('text','searchText',array('class'=>'onClickClear','disableLoadDefaultDecorators'=>true))

我认为这将有助于删除HtmlTag装饰程序:

$element = $searchForm->createElement('text', 'searchText', array('class'=>'onClickClear'));
$element->removeDecorator('HtmlTag');
$searchForm->addElement($element);

我认为这将有助于删除HtmlTag装饰器:

$element = $searchForm->createElement('text', 'searchText', array('class'=>'onClickClear'));
$element->removeDecorator('HtmlTag');
$searchForm->addElement($element);

通过传递要加载的装饰器数组,可以覆盖createElement/addElement中的默认装饰器

“ViewHelper”装饰器通常呈现表单元素本身,“Errors”表示验证器出现问题,而“Label”表示表单元素通常很方便

$searchForm->addElement('text', 'searchText', array(
  'class'=>'onClickClear', 
  'decorators'=>Array(
    'ViewHelper',
    'Error', 
    array('Label', array('tag' => 'div')),
   ),
));

通过传递要加载的装饰器数组,可以覆盖createElement/addElement中的默认装饰器

“ViewHelper”装饰器通常呈现表单元素本身,“Errors”表示验证器出现问题,而“Label”表示表单元素通常很方便

$searchForm->addElement('text', 'searchText', array(
  'class'=>'onClickClear', 
  'decorators'=>Array(
    'ViewHelper',
    'Error', 
    array('Label', array('tag' => 'div')),
   ),
));

另一种方法是在初始化表单之后立即调用setElementDecorators(),这将为所有后续元素设置默认的decorators。我将下面的代码用于非常简单的(一个或两个字段表单),我只想显示在一行上,不需要大量验证:

$form = new Zend_Form();
$form->setElementDecorators( array( 'ViewHelper', 'Label' ) );

另一种方法是在初始化表单之后立即调用setElementDecorators(),这将为所有后续元素设置默认的decorators。我将下面的代码用于非常简单的(一个或两个字段表单),我只想显示在一行上,不需要大量验证:

$form = new Zend_Form();
$form->setElementDecorators( array( 'ViewHelper', 'Label' ) );

我刚刚意识到这不符合您在
addElement()
调用中的要求,但我认为这是不可能的-除非您想创建自己的Zend_表单子类,然后您可以执行您需要的操作。我刚刚意识到这不符合您在
addElement()
调用中的要求,但是我认为这是不可能的——除非你想创建你自己的Zend_表单子类,然后你可以做你需要做的事情。通过禁用默认的装饰器,你就禁用了所有的装饰器。因此,即使是呈现元素、其标签和错误装饰器的元素。你到底不想要什么?定义列表包装器?通过禁用默认装饰器,您将禁用所有装饰器。因此,即使是呈现元素、其标签和错误装饰器的元素。你到底不想要什么?定义列表包装器?在代码中,我认为装饰器名称是'Errors'而不是'Error':-)在代码中,我认为装饰器名称是'Errors'而不是'Error':-)