我有以下形式的密码字段:

$pwd = $this->CreateElement('password', 'pwd')
        ->setLabel('Change Password')
        ->setRequired(true)
        ->addValidator('StringLength', false, array(6, 16))
        ->addValidator('regex', false, array('pattern' => $allowed_pattern))
        ->addErrorMessages(array(
            'regexNotMatch' => "Only alpha-numeric characters and some punctuation are allowed.",
        ))
        ->addFilter('StringTrim');

但是,在对表单进行编辑的情况下,我不需要此字段。 我在那里使用:

    $form->getElement('pwd')->setRequired(false);

在将表单传递给视图之前,在我的控制器中。 当我检查此表单元素的属性时,我已将_allowEmpty设置为1,将_required设置为0。但是,提交表单(带有空字段)时,它在此字段上的验证失败,并返回上述RexEx验证程序的错误消息。

有什么想法为什么在这种情况下field不能通过验证?

===============>>#1 票数:0

您仍然可以改善创建表单元素的方法,

  1. 删除此处的setRequired(true)并在要使用此表单元素的位置提及true或false(我认为您将同一元素指定为true和false)。

  2. 当您提交空表格时,它返回addValidator('StringLength', false, array(6, 16))错误,因为,

  3. 如果您指定addErrorMessages()函数,它将禁用所有其他验证程序消息并撤消其数组消息,并且由于您忘记提及为字符串lentght添加错误消息元素。

查看以下示例,并尝试将其应用于您的案例。

$samplepassword=$this->createElement('samplepassword','samplepassword');
    $samplepassword->setLabel('Password')
            ->addValidator('NotEmpty')
            ->addValidator('StringLength',false,array('min'=>6,'max'=>16,'encoding' => 'UTF-8','messages'=>array(
                                            'stringLengthTooShort' => 'Passwords must be 6 char mi',
                                            'stringLengthTooLong' => 'Passwords must be no longer 16 something like that'
                                        )))
            ->addValidator('regex', false, array('pattern' => $allowedstring,  messages'=>array('regexNotMatch'=>'Passwords should alphabet or something')));

  ask by Owen translate from so

未解决问题?本站智能推荐:

3回复

Zend表单验证

我正在使用Zend Form来创建动态表单。 我也有Zend Form验证。 尝试动态删除验证,但没有取得任何成功。 你能帮我删除Zend Validation吗? 贝娄是我删除验证的代码: 让我知道我的代码是否有任何问题 谢谢穆罕默德·塔雷克
4回复

zend表单验证

我想知道Zend_Form如何验证输入,我的意思是它如何知道要验证的输入字段。 我查看了php全局($ _ POST,$ _GET),我没有看到任何设置为标识符(例如),以便知道如何验证。 有谁能建议我这个东西的任何指南?
1回复

验证隐藏元素zend表单

在我看来,我正在使用jquery将我的几个表单元素的可见性设置为无(实际上是通过调用fadeIn和fadeOut方法)。 问题在于,由于隐藏了这些元素,因此不再对隐藏的元素执行验证。 知道隐藏元素(或折叠元素)时如何保持验证检查吗?
2回复

zend表单自定义验证

在我的控制器中 但是即使$exist值为1我的错误消息也不会显示
5回复

zend表单电子邮件验证

我有以下代码为用户的电子邮件地址生成输入字段 现在的问题是,如果用户为电子邮件输入无效的主机名,则会产生3个错误。 让我们说用户输入'admin @ l'作为电子邮件地址,错误就是 *'l'没有电子邮件地址'admin @ l'的有效主机名 *'l'与DNS主机名的预期结构不匹
2回复

zend问题在zend表单元素上验证

我曾经使用此表单元素来验证电子邮件并在格式无效的情况下显示错误消息: setErrorMessages可以正常工作,因为这是我唯一需要的验证,因此它用我的自定义消息替换了所有错误消息,现在我必须添加另一个验证来查看它是否已存在于数据库中: 该功能很好,问题在于,当电子邮件无效时,
4回复

Zend Framework:如果验证失败并保留表单字段,则发布到其他操作,然后返回到原始操作

这听起来很奇怪,但是我在一页上有两种形式。 一个只是回发自己。 我发表了第二篇文章,以使代码更简洁。 也许不是正确的选择... 我现在遇到的问题是,如果第二个表单未通过验证,我将重定向回带有该表单的页面,但是我不知道如何用用户输入的原始信息来填写表单字段。 有没有办法做到这一点,并
1回复

在Zend Framework 2中使用子表单验证表单

我有一个带有子窗体的窗体。 我的问题是如何验证? 我不知道如何使用子表单验证此表单。 这是代码: 之所以创建此表单,是因为我在元素名称上有一个数组。 要列出它,它可以工作,但是现在我要编辑并且无法通过验证。
1回复

Zend表单验证器文件上载无效

我得到了和Zend Form这样做: 然后是一个检查帖子数据的Controller: 一个自定义视图控制器是这样的: 当我在textfields中输入一些信息并发布它时,$ form-> isValid()变为false。 当我从表单和自定义视图中删除文件部分时,
2回复

zend表单发送一个验证器onblur元素

那可能吗? 我已经编写了一个在提交表单时触发的简单验证器。 我可以使用相同的验证器,但必须在输入字段离开后立即触发。 可能吗? 巴勃罗