【发布时间】:2011-07-05 03:24:57
【问题描述】:
我在我的 zend_form 中使用验证码。
$captcha_element = new Zend_Form_Element_Captcha(
'captcha',
array('label' => 'Write the chars to the field',
'captcha' => array(
'captcha' => 'Image',
'wordLen' => 6,
'timeout' => 300,
'font' => DOC_ROOT . '/data/fonts/Vera.ttf',
'imgDir' => $imagedir,
'imgUrl' => $umageurl
)
)
);
这会生成:
<dt id="captcha-input-label">
<label for="captcha-input" class="required">Write the chars to the field</label>
</dt>
<dd id="captcha-element">
<img width="200" height="50" alt="" src="http://sitename.com/captcha/09dd951939c6cdf7fa28f2b7d322ea95.png">
<input type="hidden" name="captcha[id]" value="09dd951939c6cdf7fa28f2b7d322ea95" id="captcha-id">
<input type="text" name="captcha[input]" id="captcha-input" value="">
</dd>
但是。 - 我需要以下内容(验证码元素单独包装到一些标签中):
<dt id="captcha-input-label">
<label for="captcha-input" class="required">Write the chars to the field</label>
</dt>
<dd id="captcha-element">
<div><span>
<input type="text" name="captcha[input]" id="captcha-input" value="">
</span></div>
<div><span>
<img width="200" height="50" alt="" src="http://sitename.com/captcha/09dd951939c6cdf7fa28f2b7d322ea95.png">
<input type="hidden" name="captcha[id]" value="09dd951939c6cdf7fa28f2b7d322ea95" id="captcha-id">
</span></div>
</dd>
我不知道该怎么做。我可以通过使用一些自定义装饰器来实现这一点吗?还是涉及自定义验证码?
【问题讨论】:
-
这不是一项简单的任务。例如,您正在更改验证码表单元素中的字段顺序。此订单是硬编码的。因此,要更改它,您需要修改 Zend_Form_Element_Captcha 或创建您自己的 Zend_Form_Element_Captcha 版本。
标签: zend-framework zend-form zend-form-element