如何将字符实体放入 ZF2 中的 formSubmit 值中
How to put a character entity in the value of a formSubmit in ZF2
当我像这样在 ZF2 表单中创建提交按钮时:
$this->add(array(
'name' => 'save_closebutton',
'attributes' => array(
'type' => 'submit',
'value' => 'Save & Move On »',
'id' => 'save_closebutton',
'class' => 'btn btn-default'
),
));
然后像这样在视图中放置一个 formSubmit
元素:
echo $this->formSubmit($form->get('save_closebutton'));
ZF2 将按钮中的文本呈现为 Save & Move On »
,而不呈现代码表示的字符。
我很确定问题出在 formSubmit
助手中,因为检查元素表明助手创建了这个:
<input id="save_closebutton" class="btn btn-default" type="submit" value="Save & Move On »" name="save_closebutton">
但如果我只是在视图中回显相同的字符串,
echo '<input id="save_closebutton" class="btn btn-default" type="submit" value="Save & Move On »" name="save_closebutton">';
按钮正确呈现。
如何让 formSubmit
传递字符而不是代码?
FormSubmit
助手在输出前转义属性名称和值,据我所知,如果不提供自定义助手,就无法禁用它。
由于您的提交元素只是一个按钮,您可以使用 Button
元素和 FormButton
视图助手来解决您的问题。该元素有一个标签选项,允许您禁用标签上的 html 转义,并且助手会遵守该设置。
在表单中创建提交按钮...
$this->add(array(
'name' => 'save_closebutton',
'type' => 'Button', // \Zend\Form\Element\Button
'options' => array(
'label' => 'Save & Move On »',
// inform the FormButton helper that it shouldn't escape the label
'label_options' => array(
'disable_html_escape' => true,
),
),
'attributes' => array(
'type' => 'submit', // <button type="submit" .../>
'id' => 'save_closebutton',
'class' => 'btn btn-default'
),
));
使用 FormButton
助手渲染元素 ...
echo $this->formButton($form->get('save_closebutton'));
当我像这样在 ZF2 表单中创建提交按钮时:
$this->add(array(
'name' => 'save_closebutton',
'attributes' => array(
'type' => 'submit',
'value' => 'Save & Move On »',
'id' => 'save_closebutton',
'class' => 'btn btn-default'
),
));
然后像这样在视图中放置一个 formSubmit
元素:
echo $this->formSubmit($form->get('save_closebutton'));
ZF2 将按钮中的文本呈现为 Save & Move On »
,而不呈现代码表示的字符。
我很确定问题出在 formSubmit
助手中,因为检查元素表明助手创建了这个:
<input id="save_closebutton" class="btn btn-default" type="submit" value="Save & Move On »" name="save_closebutton">
但如果我只是在视图中回显相同的字符串,
echo '<input id="save_closebutton" class="btn btn-default" type="submit" value="Save & Move On »" name="save_closebutton">';
按钮正确呈现。
如何让 formSubmit
传递字符而不是代码?
FormSubmit
助手在输出前转义属性名称和值,据我所知,如果不提供自定义助手,就无法禁用它。
由于您的提交元素只是一个按钮,您可以使用 Button
元素和 FormButton
视图助手来解决您的问题。该元素有一个标签选项,允许您禁用标签上的 html 转义,并且助手会遵守该设置。
在表单中创建提交按钮...
$this->add(array(
'name' => 'save_closebutton',
'type' => 'Button', // \Zend\Form\Element\Button
'options' => array(
'label' => 'Save & Move On »',
// inform the FormButton helper that it shouldn't escape the label
'label_options' => array(
'disable_html_escape' => true,
),
),
'attributes' => array(
'type' => 'submit', // <button type="submit" .../>
'id' => 'save_closebutton',
'class' => 'btn btn-default'
),
));
使用 FormButton
助手渲染元素 ...
echo $this->formButton($form->get('save_closebutton'));