2011-01-12 6 views
0

PHP-Code:Zend_Form und setElementFilters mit Zend_Filter_StringTrim nicht trimmen nicht

$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> 

hat über dieses Problem jemand kommen und wenn ja, wie man es beheben globaly für das Verfahren setElementFilters ?

Wenn ich den Filter zum Element hinzufüge, funktioniert es gut. Ich möchte einfach nicht die Trimmung für jedes Element einstellen.

Antwort

3

Ich glaube, das Problem ist, dass Sie Filter sind einstellen, bevor das Element tatsächlich in das Formular eingefügt wurde. Versuchen Sie, die Reihenfolge zu ändern, fügen Sie zuerst das Element hinzu und dann setzen Sie Filter:

+0

Danke Vika. Das hat funktioniert. Sie würden denken, dass es nicht wichtig sein sollte. –

1

Versuchen Sie, diese

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

Versuchte dies und es machte keinen Unterschied. Trotzdem danke. –

Verwandte Themen