JavaScript jQuery: Dynamisch erzeugte Checkboxen funktionieren nicht

M

Mr. Snoot

Gast
Hio,

ich habe diese Seite (erstmal wieder geheim ;))

Wenn man einen der aktuell gewählten Hersteller abwählt, verschwindet auch in der Auflistung unten die entsprechende Zeile.

Jetzt würde ich gerne, abhängig von den Auswahllisten (Kapazität, Schreiben, Lesen, Preise, usw.), nur die Hersteller anzeigen, die zu den Auswahlen passen (die anderen ausgrauen/deaktivieren).

Das ist im Grunde kein Problem: dazu hole ich mir alle aktuell gewählten Werte und übergebe sie an ein Script (hersteller.php), wo dann aus einer MySQL-DB die passenden Hersteller gesucht werden:

JS:
PHP:
$(document).ready(function()
{
  $("select[id*='sel_']").change(function()
  {
    var schreiben   = $("#sel_schreiben").children('option:selected').val();
    // weitere Auswahllisten
    // ...

    $("#hersteller").load("hersteller.php",{"value[]": [kapazitaet, preis, lagernd, tests, land, lesen, schreiben, usb, hersteller]});
  });
});

Die Checkboxen sehen alle so aus:
HTML:
<input id="sel_HerstellerXY" type="checkbox" name="hersteller[]" value="HerstellerXY"> HerstellerXY


Die geladene hersteller.php gibt mir jetzt mit echo die passenden Hersteller aus; also im Grunde wieder der gleiche Code für die Checkboxen (nur eben teilweise disabled); wenn man an den Auswahllisten spielt, sieht man's auch.


Problem: die jetzt generierten Checkboxen funktionieren nicht mehr, d.h. das JS wird nicht mehr angesprochen. Kein Fehler, nichts. (für die Checkboxen habe ich im JS entsprechend $("input[id*='sel_']")...)


Ich kenn mich mit JS nicht besonders aus - Copy and paste mit ein paar Anpassungen krieg ich hin :D - aber ich denke mal, dass die neu generierten Checkboxen irgendwie "in der Luft hängen" (die Änderung stehen ja nicht direkt im Quellcode) und daher keine Wirkung mehr haben.

Andererseits könnte man das Formular ja ganz normal abschicken und mit PHP auswerten, also müssen die Checkboxen ja schon irgendwie ankommen.

Nur wieso klappt das JS nicht mehr?
 
Zuletzt bearbeitet: (Beitrag wiederhergestellt)
Du brauchst live() - damit kannst du auch nachträglich eingefügte Elemente mit einem Event-Handler versehen.
 
Zurück
Oben