好的,因为这个问题有2个部分,所以一起解释它们会更容易。所以这里:
我正在尝试从这些元素中删除默认装饰器,因为我使用了一种不同的样式化方法。但无论我做什么,DtDDWrapper仍然出现。如果我尝试删除所有装饰器,下面的所有字段都会消失。
public function newfieldAction() {
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('newfield', 'html')->initContext();
$id = $this->_getParam('id', null);
$id1=$id+1;
$id2=$id+2;
$element = new Zend_Form_Element_Text("newTitle$id1");
$element->setOptions(array('escape'=>false));
$element->setRequired(true)->setLabel('Vertība')->removeDecorator('label');
$tinyelement=new Zend_Form_Element_Text("newName$id");
$tinyelement->setRequired(true)->setOptions(array('escape'=>false))->setLabel('Vertība')->removeDecorator('label');
$textarea_element = new Zend_Form_Element_Textarea("newText$id2");
$textarea_element->setRequired(true)->setOptions(array('escape'=>false))->setLabel('Vertība')->removeDecorator('label');
$this->view->descriptionField = "<td>".$textarea_element->__toString()."</td>";
$this->view->titleField = $element->__toString();
$this->view->field = $tinyelement->__toString();
$this->view->id=$id;
}
上下文视图脚本以一种或另一种方式修剪我的代码。当我尝试在视图脚本中添加<td>
或<table>
标记时,它只会跳过标记。有没有办法阻止这种逃避发生?我的观点脚本:
<tr class="element<php echo $this->id; ?>">
asdfasdfasdfasd
<td><?php echo $this->field ?></td>
<td><php echo $this->titleField ?></td>
<td><php echo $this->descriptionField ?></td>
<td><a class="remove-element" rel="<php echo $this->id ?>">remove</a></td>
</tr>
P.S。代码格式化系统正在向我发誓,有人可以帮我解释一下代码的格式吗?
答案 0 :(得分:1)
至少需要设置ViewHelper
装饰器。这是呈现元素本身的那个。
要禁用默认装饰器,最简单的方法是通过元素构造函数,通过decorators
选项设置装饰器或将disableLoadDefaultDecorators
选项设置为false(但您仍需要稍后设置装饰器)。例如
$element = new Zend_Form_Element_Text("newTitle$id1", array(
'decorators' => array('ViewHelper')
));
你需要通过“跳过标签”来详细说明你的意思。除了标记中的asdfasdfasdfasd
不合适的字符串外,我看不出任何问题。
这也可能受到DOM加载/放置AJAX上下文的位置的影响。将其加载到错误的位置,创建无效标记可能会使其显示无法正确显示。