Wer mit Formularen arbeitet, der greift häufig auf JavaScript zurück, um auf Nutzereingaben mittels OnClick, OnChange oder OnMouseOver zu reagieren. HTML_QuickForm2 ermöglicht das Einbinden von JavaScript-Attributen, indem man addElement ein Array mit typischen HTML-Attributen anhängt.
Das Prinzip ist dabei immer dasselbe:
$form->addElement(
{HTML_FORMULAR},
{INPUT_NAME},
array(
{HTML_ATTRIBUT}=>{INHALT},
{HTML_ATTRIBUT}=>{INHALT},
{HTML_ATTRIBUT}=>{INHALT}
)
);
Somit kann man jedes beliebe INPUT- bzw. HTML-Attribut einbinden, welches man bei der normalen Formular-Gestaltung verwendet. Beispielsweise style, id, placeholder und vieles mehr. In folgendem Beispiel definieren wir ein klassisches onclick:
/*
* Formular erstellen
*/
$form = new HTML_QuickForm2('Formular_mit_JavaScript');
/*
* Formular_Feld inklusive JAvaScript-Attribut wie OnClick, OnChange oder OnMouseOver
*/
$fsCommon = $form->addElement('fieldset')->setLabel('Allgemein');
$name = $fsCommon->addElement('text', 'F_NICKNAME', array('id' => 'F_NICKNAME', 'onclick'=>'toggleMask(\'id_mask\')')));
echo $form;
Das Ergebnis ist - wie nicht anders zu erwarten - folgendes:
<div class="quickform">
<form action="Formular_mit_JavaScript.php" id="Formular_mit_JavaScript" method="post">
<div>
<input type="hidden" name="_qf__Formular_mit_JavaScript" id="qf:Formular_mit_JavaScript">
<div class="row">
<p class="label"></p>
<div class="element">
<input type="text" name="F_NICKNAME" onclick="toggleMask('id_mask')">
</div>
</div>
</div>
</form>
</div>