2009-06-08 10 views
0

Wenn ich bauen ein Formular:Gibt es einen eingebauten Weg in Zend-Form um den Wert des SUBMIT Eingabefeldes zu verbergen?

 $search_words = new Zend_Form_Element_Text('text'); 
    $search_words->setRequired(true)->setDecorators(array(array('ViewHelper'))); 
    $form->addElement($search_words); 

    $go = new Zend_Form_Element_Submit('gogogo'); 
    $go->setDecorators(array(array('ViewHelper'))) 
     ->setIgnore(true); 
    $form->addElement($go); 

Mit Methode GET. Ich werde in der URL gogogo = gogogo sehen. Wenn ich das Markup selbst schreiben würde, würde ich einfach kein Attribut [name] angeben und das hätte das gelöst. Wenn Sie versuchen, den Namen eines Submit auf '' zu setzen, wird nicht funktionieren (entweder löst es eine Exception aus oder wird ignoriert, hängt davon ab, wie Sie es tun).
Irgendwelche (eingebaute) Ideen?

Antwort

1

Ein andere Möglichkeit wäre, den Submit-Button zu deaktivieren, bevor das Formular abgeschickt wird:

$go->setDecorators(array(array('ViewHelper'))) 
    ->setIgnore(true) 
    ->setAttrib('onclick', 'this.disabled = true'); 

Auf diese Weise wird der Wert der Absenden-Button wird nach Absenden des Formulars ignoriert.

0

Es gibt ein paar Möglichkeiten:

  1. einen benutzerdefinierten Dekorateur Verwenden Sie das Markup, so ein Namensattribut Verwenden von Zend_Form Render-Methoden, eine Zeichenfolge Ersatzfunktion zurück auf das Markup nicht angegeben
  2. zu bauen ich füge normalerweise eine benutzerdefinierte Route entfernen Sie das Attribut
  3. Was oft ich, wie

folgt, so dass eine der folgenden gilt:

domain.tld/search/keyword 
domain.tld/search?q=keyword 

Dann können Sie Javascript verwenden, um den Reiniger Form der URL zu umleiten, wobei darauf geachtet das Keyword-Feld

Die meisten Ihrer Nutzer urlencode wird der Reiniger URL auf diese Weise sehen.

Verwandte Themen