zend framework 1 Form - 如果存在验证错误,请注意元素将丢失其值
zend framework 1 Form - Note element lost its value if there is validation error
我的 zend framework 1 表单中有一个 Note 元素用于注册。它以以下格式定义:
$captcha_reload = new Zend_Form_Element_Note('captcha_reload',
array('value'=>"<div id='captcha_reload_div'>
<a href='javascript:return false;'
id='change-image'>Change text.</a></div>"));
$this->addElement($captcha_reload);
该元素显示超链接,在注册页面调用时完美显示。
问题出在表单提交过程中。如果存在表单验证错误,此注释元素不会显示任何内容(即缺少超链接)。
我已经检查并尝试了以下代码:
$this->setDefaults(array('captcha_reload'=>"<div id='captcha_reload_div'>
<a href='javascript:return false;'
id='change-image'>Change text.</a></div>"));
但是如果表单验证错误,仍然没有值。
对于 Note 元素,我在 Zend Registration Form 页面中包含了以下内容:
class Zend_Form_Element_Note extends Zend_Form_Element_Xhtml
{
public $helper = 'formNote';
}
提交表单时,它会覆盖元素的 value
属性。由于没有提交任何内容,当再次 echo
编辑表单以显示表单错误时,元素的值也为空。
或许向元素添加一个 isValid
函数?
// pseudo-code
public function isValid($value, $context = null) {
$this->_setValue("<div id='captcha_reload_div'><a href='javascript:return false;' id='change-image'>Change text.</a></div>");
return true;
}
这会将值重置为您的自定义文本,并且 return 为真而不进行任何检查(因为您知道该值是您想要的值)。随后,当表单再次 echo
s 时,它将显示 isValid
中设置的值
class Zend_Form_Element_Note extends Zend_Form_Element_Xhtml
{
public $helper = 'formNote';
public function isValid($value, $context = null)
{
return true;
}
}
我已将 isValid() 添加到注释 class 中,它工作正常。它不需要在 Note class.
中使用 _setValue()
我的 zend framework 1 表单中有一个 Note 元素用于注册。它以以下格式定义:
$captcha_reload = new Zend_Form_Element_Note('captcha_reload',
array('value'=>"<div id='captcha_reload_div'>
<a href='javascript:return false;'
id='change-image'>Change text.</a></div>"));
$this->addElement($captcha_reload);
该元素显示超链接,在注册页面调用时完美显示。
问题出在表单提交过程中。如果存在表单验证错误,此注释元素不会显示任何内容(即缺少超链接)。
我已经检查并尝试了以下代码:
$this->setDefaults(array('captcha_reload'=>"<div id='captcha_reload_div'>
<a href='javascript:return false;'
id='change-image'>Change text.</a></div>"));
但是如果表单验证错误,仍然没有值。
对于 Note 元素,我在 Zend Registration Form 页面中包含了以下内容:
class Zend_Form_Element_Note extends Zend_Form_Element_Xhtml
{
public $helper = 'formNote';
}
提交表单时,它会覆盖元素的 value
属性。由于没有提交任何内容,当再次 echo
编辑表单以显示表单错误时,元素的值也为空。
或许向元素添加一个 isValid
函数?
// pseudo-code
public function isValid($value, $context = null) {
$this->_setValue("<div id='captcha_reload_div'><a href='javascript:return false;' id='change-image'>Change text.</a></div>");
return true;
}
这会将值重置为您的自定义文本,并且 return 为真而不进行任何检查(因为您知道该值是您想要的值)。随后,当表单再次 echo
s 时,它将显示 isValid
class Zend_Form_Element_Note extends Zend_Form_Element_Xhtml
{
public $helper = 'formNote';
public function isValid($value, $context = null)
{
return true;
}
}
我已将 isValid() 添加到注释 class 中,它工作正常。它不需要在 Note class.
中使用 _setValue()