2011-01-17 13 views
1

Ich versuche, etwas Interessantes mit Jquery und meinen Formen zu tun. Und alles läuft darauf hinaus, Elemente basierend auf bestimmten Attributen zu gruppieren. Ich habe einen MultiCheckbox mit einem Bündel von Optionen darin, die folgende Beispielausgabe generiert:Hinzufügen von Attributen zu Zend Form Multicheckbox

<label for="xyz-nn"> 
<input type="checkbox" value="nn" id="xyz-nn" name="xyz[]">Doodle 
</label> 

Stellen Sie sich vor, dass viele Male. Anywho, ich möchte ein Attribut mit einem eindeutigen Wert für jedes Kontrollkästchen hinzufügen, aber mit setAttrib ("attributeName", "valueN") setzt das Attribut als letzten Wert anstelle eines neuen Werts für jedes Kontrollkästchen.

Die Frage ist: Wie setze ich einen eindeutigen Wert für ein Attribut für jede Option?

+0

möglich Duplikat von [ Zend Formular benutzerdefinierte Attribut in ausgewählte Option?] (http://stackoverflow.com/questions/5401412/zend-form-custom-attribute-in-select-option) –

Antwort

2

Ein bisschen wie ein Weg, dies zu tun.

Ich kann nicht verschiedene Attribute für jede Multioption festlegen - die letzte wird immer ein vorhandenes Attribut überschreiben. Also musste ich eine Klasse um den Text für die Checkbox legen. Leichter gesagt als getan, wenn es keinen klaren Weg dafür gibt.

Zuerst müssen wir das Escaping deaktivieren. Dazu müssen wir das Escape-Attribut als boolean false setzen:

$ element-> setAttrib ('escape', false);

Dies ermöglicht uns, unsere eigene spezielle Marke von HTML zu setzen.

$ element-> addMultiOption ($ objekt-> id, '< span class = "'. $ OtherObject-> id '" >'. $ Object-> Name). '</span >';

Die Ausgabe für eine Option ist so etwas wie:

<label for="object-1"> 
    <input type="checkbox" value="1" id="object-1" name="objects[]" /> 
    <span class="food">Object One</span> 
</label> 

Mit jeder Option jetzt mit einem einzigartigen, kann ich gruppiert sie jedoch die Art, wie ich mit jQuery will :)