我无法在Zend_Form_Element_Submit中禁用转义,所以当标签有特殊字符时,它不会显示它的值..
这是我的实际Zend表格代码:
$this->submit = new Zend_Form_Element_Submit('submit');
$this->submit->setLabel('Iniciar Sesión');
$this->submit->setIgnore(true);
$this->addElement($this->submit);
我已经尝试了$this->submit->getDecorator('Label')->setOption('escape', false);
但是我得到了一个“非对象”错误(也许提交没有使用“Label”装饰器)..
我也按照建议$this->submit->setAttrib('escape', false);
进行了尝试,但也没有显示任何文字。任何想法?感谢
答案 0 :(得分:1)
应该像这样简单:
$element->addDecorator('Label', аrray('escape'=>false));
或者查看setEscape()
。 http://framework.zend.com/manual/1.12/en/zend.form.standardDecorators.html
关于无法检索命名装饰器...尝试getDecorators()
您是否在结果中看到'标签'?
答案 1 :(得分:1)
默认情况下,没有用于提交表单元素的Label装饰器(这就是您收到错误的原因)。
$this->submit->setLabel('Iniciar Sesión');
值转到Zend_View_Helper_FormSubmit,它总是转义并使用标签作为值。
答案 2 :(得分:1)
默认情况下,Submit元素使用的助手会转义。与标签装饰器不同,提交标签包含在HTML属性中,因此需要对其进行转义。
您的标签 - IniciarSesión - 是完全有效的UTF-8字符串,因此它的转义版本将是相同的。如果你的标签没有出现,那么别的东西就出错了。我猜你的页面是使用与Zend View使用的字符集不匹配的字符集(默认为UTF-8)。
查看页面源以查看实际输出的内容 - 这可能会为您提供更多线索。或者,如果此表单所在的页面是公开的,如果您可以提供URL,我们可能会发现该问题。
答案 3 :(得分:0)
我遇到了类似的问题。在我的实例中,我向文本字段元素添加了标签和描述。这行代码允许我关闭附加到该字段元素的描述的html转义:
$form->getElement('txtUPC')->getDecorator('description')->setOption('escape', false);
在我的测试中,表单元素或其装饰器无法识别setEscape()
。