我看过其他问题/谷歌搜索了这个。我的问题是,当我提交带有notEmpty
验证器的空文本框的表单时,它不会触发错误。
首先,我想看看我是否理解 和 之间的notEmpty
区别setRequired
。据我了解,notEmpty
如果提交了元素并且值为空,则验证器会出错。也就是说,如果 POST 数据中不存在条目(对于表单),则如果该元素不是必需的,则不会生成错误。就像它只在元素被设置时运行。除非另有说明,否则该setRequired
方法将自动notEmpty
在幕后添加验证器。这确保了元素的条目必须存在并且不能为空。正确的?
现在,我尝试在我添加notEmpty
验证器的表单中使用此逻辑,如下所示:
$username = new Zend_Form_Element_Text('txtUsername');
$username->addValidator(new Zend_Validate_NotEmpty(), true);
其他文本字段也是如此。如果我在不输入值的情况下提交表单,我的 POST 数据如下所示:
(
[txtUsername] =>
[txtPassword] =>
[txtRepeatPassword] =>
)
但是,isValid
仍然评估为true
并且不会生成错误消息。为什么?由于元素在 POST 数据中有一个条目,验证器不应该notEmpty
确定值是空的吗?如果我使用setRequired(true)
,它会按我的意愿工作。当值为空字符串时,它确定用户名不为空,这让我感到很困惑。:-)
提前致谢。