【问题标题】:Form's element filter doesnt work表单元素过滤器不起作用
【发布时间】:2013-11-07 09:26:24
【问题描述】:

我想为文本表单元素添加一个过滤器。代码是:

$this->addElement('text', 'product_amt', array(
    'filters' => array('Digits'),       
    'required' => true )
);

过滤器似乎不起作用,因为当我输入例如当我按下表单提交按钮时,“78abc”字段中的值保持不变。此外,我得到“78abc”而不是“78”作为“product_amt”POST 参数。

【问题讨论】:

    标签: zend-framework zend-form zend-decorators


    【解决方案1】:

    来自 POST 的值将是用户在输入字段中输入的值。 当您在表单对象上调用 isValid 时应用过滤器:

    $form = new My_Form(); // your form object
    if( $form->isValid( $this->getRequest()->getPost() ) ) { //we pass in the POST data into the isValid function
        //Valid data - do something
    } else {
        //data is not valid - do something else
    }
    

    isValid 函数期间,每个元素的值会根据需要进行过滤(在这种情况下仅过滤为数字),然后在调用元素的isValid 函数之前将其设置为元素的值以确保值通过任何验证(在本例中为 'isRequired',因为您已将 'required' 设置为 true)。

    您是否在表单上致电isValid

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多