【发布时间】:2012-07-26 21:57:55
【问题描述】:
我看过其他 questions/Google 搜索过这个。我的问题是,当我提交带有 notEmpty 验证器的空文本框的表单时,它不会触发任何错误。
首先,我想看看我是否理解notEmpty 和setRequired 之间的区别。据我了解,notEmpty 验证器在提交元素并且值为空时会出错。也就是说,如果 POST 数据中不存在条目(对于表单),则如果元素不是 必需,则不会生成错误。就像它只在元素为 set 时运行。 setRequired 方法将在幕后自动添加一个 notEmpty 验证器,除非另有说明。这确保了元素的条目必须存在并且不能为空。对吗?
现在,我尝试在我添加 notEmpty 验证器的表单中使用此逻辑,如下所示:
$username = new Zend_Form_Element_Text('txtUsername');
$username->addValidator(new Zend_Validate_NotEmpty(), true);
其他文本字段也是如此。如果我在不输入值的情况下提交表单,我的 POST 数据如下所示:
(
[txtUsername] =>
[txtPassword] =>
[txtRepeatPassword] =>
)
但是,isValid 的计算结果仍为 true,并且不会生成错误消息。为什么? notEmpty 验证器不应该确定这些值是空的,因为该元素在 POST 数据中有一个条目吗?如果我使用setRequired(true),它会按我的意愿工作。当值为空字符串时,它确定用户名不为空,这让我很困惑。 :-)
提前致谢。
【问题讨论】:
标签: php zend-framework zend-form zend-form-element