【发布时间】:2015-03-07 18:48:52
【问题描述】:
您好,我有一个带有数字字段的表单。我使用正则表达式来验证该字段。出于这个原因,我在元素中添加了模式属性。但是,当我使用 formText 时,它的 html 会转义正则表达式模式。
//inside the form _construct
$this->add(array(
'name' => 'number',
'type' => 'text',
'options' => array(
'label' => 'Number',
),
'attributes' => array(
'pattern' => '/^(\+)?((\d)+(-|\s)?)+$/',
'maxLength' => '20',
'id' => 'number',
),
));
在形式上
<?php echo $this->formText($form->get('number')); ?>
那么结果就是
<input type="text" name="number" pattern="&#x2F;&#x5E;&#x28;&#x5C;&#x2B;&#x29;&#x3F;&#x28;&#x28;&#x5C;d&#x29;&#x2B;&#x28;-&#x7C;&#x5C;s&#x29;&#x3F;&#x29;&#x2B;&#x24;&#x2F;" id="number" value="" maxlength="20">
如何在不转义正则表达式模式的情况下将数字字段添加到我的表单中?
【问题讨论】:
-
github上有一个关于这个的讨论。 github.com/zendframework/zf2/issues/3015 也许这有助于解释为什么会发生这种情况以及如何解决它。
-
我阅读了这个讨论,但它只涉及标签而不是属性。
标签: zend-framework2 view-helpers html-escape