• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Nerviges Verhalten bei Checkboxen Array

xlazarus

Neues Mitglied
Hallo liebe Gemeinde!

Ich hoffe ich bin hier richtig.
Nach ewigen Googlen hab ich leider keine Lösung gefunden.
Ich arbeite mit smarty templates, php usw.
Folgendes Phänoment tritt jetzt auf.

Ich habe in einem label mit display:none ... eine Liste mit checkboxen name="data[]" ... usw.
via editbutton wird dann mit js das label eingeblendet und dislay auf inline gesetzt ... kennt man ja.
Leider passiert jetzt immer folgendes wenn ich irgenwo innerhalb des labels oder auf irgendeine checkbox klicke, dann bekommt IMMER die erste checkbox den focus und wird auch IMMER checked bzw. unchecked.

Kennt vielleicht jemand dieses Problem oder bin ich nur zu doof?

... wenn ich normal die checkboxen anzeige (also ohne dass sie vorher ubsichtbar sind und einzeln eingeblendet werden können), passiert das nicht.

Bitte um Hilfe.

Danke
 
Werbung:
... ok UPDATE ... ich kann das Problem umgehen indem ich ein Tabelle um die Checkboxen baue ... also liegt es irgendwie am Focus der Darstellung ...
... also einen RoundUp hätte ich gefunden ;)

... setze aber das Thema nicht auf erledigt, da ja das ursp. Problem besteht.

... ich hoffe das ist OK so?

lg
XL
 
Der Schnippsel js, der die Checkboxen einblendet, wäre zur Fehlersuche hilfreich. Auf den ersten Blick kommt mir hier in den Sinn, dass die Checkboxen mit getElementsByName angesprochen werden, richtiger aber ist getElementById, wobei dann natürlich jede checkbox eine eindeutige ID haben muss.

... ist jetzt mangels Quellcode natürlich nur ins blaue hinein gedacht ;)
 
Werbung:
Bitte sehr ... nur werden die Checkboxen ja nicht mit js abgefragt ... nur das label in dem sie sich befinden ;)

JS ...
function hideAllFields(){
var arr_labels = document.getElementsByName('editLabel');
for (i = 0; i < arr_labels.length; ++i){
arr_labels.style.display = 'none';
}
var arr_labels = document.getElementsByName('editDataLabel');
for (i = 0; i < arr_labels.length; ++i){
arr_labels.style.display = 'none';
}
}

function showFieldDataEdit(field_id){
var field = document.getElementById(field_id);
//wenn schon offen dann schliessen
if(field.style.display !== 'none'){
field.style.display = 'none';
}else{
//vorher alle schliessen ... immer nur 1
hideAllFields();
field.style.display = 'inline';

}
}
...

... die checkboxen sind dann im <label id="databox" style="display:none;"> ....


Also die checkbox werden vonmir gar nicht mit js behandelt ... (name ist ja gleich da (checkBoxData[])ichs ja als Array brauche ;) ...
einzigartige ids hab ich auch schon versucht zu erzeugen ... bringt aber nichts ... wie gesagt irgendwie schießt sich da das eingeblendete label/div ...selbst ins knie, weil es immer den focue auf das erste element legt ... die erste checkbox wird auch immer selektiert wenn ich im umrahmten label irgendwo anders hinklicke

... das table DOM hebt diesen Effekt auf ;)
 
Zurück
Oben