开发者

Zend_Form and setElementFilters with Zend_Filter_StringTrim does not trim

开发者 https://www.devze.com 2023-02-03 16:44 出处:网络
PHP Code: $form = new Zend_Form(); $filters = array(new Zend_Filter_StringTrim()); $form->setElementFilters($filters); // <-- ISSUE

PHP Code:

$form = new Zend_Form();
$filters = array(new Zend_Filter_StringTrim());
$form->setElementFilters($filters); // <-- ISSUE

$customerName = new Zend_Form_Element_Text('customer_name');
$customerName->setRequired();
$form->addElement开发者_如何学编程($customerName);

$data = $this->_getAllParams();
if ($form->isValid($data)) {
    var_dump($form->getValue('customer_name'));
    // Should be "Testing Trim"
    // Actual result is " Testing Trim "
} else {
    exit('Failed');
}

HTML Code:

<form action="" method="post">
    <input type="text" name="customer_name" value=" Testing Trim " />
    <input type="submit" />
</form>

Has anyone come across this issue and if so how do you fix it globaly for the setElementFilters method?

If I add the filter to the element it works fine. I just don't want to set the trim for each element.


I believe the problem is that you're setting filters before the element has actually been added to the form. Try changing the order, first add the element, then set filters:

$form->addElement($customerName);    
$form->setElementFilters($filters);


Try this

 $form->setElementFilters(array('StringTrim'));
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号