getElementsByName im IE

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • getElementsByName im IE

    Hi,

    der Titel ist nicht ganz glücklich gewählt, aber ich habe folgendes Problem.

    Ich haber mir eine nette Auswahl für Kategorien/Unterkategorien geschrieben.
    Es wird eine Liste von Buttons generiert - wenn man nun auf einen Button klickt, werden per Ajax die zugehörigen Subkategorien geholt und man kann sich eine Auswählen.

    Beim Klick auf die Subkategorie wird per DOM ein input type hidden generiert und ins Dokument gehängt. Natürlich mit nem Span für eine Textausgabe.
    Beim hinzufügen von weiteren Kategorien schau ich ob die geklickte Kategorie schonmal als input type hidden vorhanden ist, wenn ja wird das erneute hinzufügen verweigert.

    PHP-Code:
    var subcat_in_use false

    //prüfen ob subkategorie schon vorhanden ist
    var cur_subcats document.getElementsByName('rec_subcats[]');
    var 
    subcat_in_use false;

    //subkat_id ist die subkategorie die ich hinzufügen möchte
    for(var 0cur_subcats.lengthi++){
        if(
    cur_subcats[i].value == subkat_id){
            
    subcat_in_use true;
            break;
        }
    }

    //hinzufügen von Kategorien
    if(!subcat_in_use){
      var 
    input document.createElement('input');
      
    input.name 'rec_subcats[]';
      
    input.value subkat_id;
      
    input.type 'hidden';
      
    used_subcats.appendChild(input); //used_subcats macht die Ausgabe

    Nun ist es leider so, das im IE die Anzahl der Element mit dem namen "rec_subcats[]" immer 0 ist - im FF wird brav mit hochgezählt.

    Eine Lösung wäre, das ich die schon vergebenen subkategorie-IDs in ein Array schreibe und dort nachschaue, aber leider kann die Seite auch mit schon zugeordneten Kategorien aufgerufen werden. Dann müsste ich den JS-Array schon mit den bereits vergebenen Kategorien vor-befüllen.... *grübel*

    Warum klappt das nicht über getElementsByName Schiene?


    Dank euch schonmal...
    Zuletzt geändert von prego; 01.06.2007, 12:09.

  • #2
    hast du es mit document.createAttribute() statt mit input.name = 'rec_subcats[]'; versucht?

    Ich erinnere mich dunkel daran, mit ähnlichen Gruseligkeiten gekämpft zu haben, aber nicht mehr an die Lösung...
    ich glaube

    Kommentar


    • #3
      Re: getElementsByName im IE

      Original geschrieben von prego
      Warum klappt das nicht über getElementsByName Schiene?
      Weil der IE schlicht zu blöd ist.
      Dynamisch generierte Formularelemente sind oft problematisch.


      Hast du mal überprüft, ob das Einfügen der hidden-Felder überhaupt ordnungsgemäß funktioniert hat?
      (Nein, nicht weil ich das für die Lösung des Problems halte, sondern weil ich generell Zweifel habe, ob überhaupt das im IE geklappt hat.
      Per Name auf dynamisch generierte Formularelemente zugreifen, kann der IE m.W. überhaupt nicht vernünftig.)
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Re: Re: getElementsByName im IE

        Original geschrieben von wahsaga
        Hast du mal überprüft, ob das Einfügen der hidden-Felder überhaupt ordnungsgemäß funktioniert hat?
        (Nein, nicht weil ich das für die Lösung des Problems halte, sondern weil ich generell Zweifel habe, ob überhaupt das im IE geklappt hat.
        Per Name auf dynamisch generierte Formularelemente zugreifen, kann der IE m.W. überhaupt nicht vernünftig.)
        F*ck - das hatte ich noch garnicht probiert - IE sendet die versteckten Elemente auch nicht mit...... das ist doch zum $%@§&$@......


        Blödmannsgehilfen Browser, echt jetz.


        Ok, also werd ich mir wohl ein leeres Input type hidden Feld hinpacken müssen und die IDs Kommagetrennt (o.ä.) reinpacken müssen...

        Oder hab ihr vielleicht eine besser Idee?

        Kommentar


        • #5
          Kommando zurück... sie sind doch da - hab was übersehen.

          Sie waren nur nicht bei meiner Ausgabe da... ich geh jetzt erstmal was essen und überprüf das nochmal...

          Kommentar


          • #6
            Ok,

            also der IE überträgt die per DOM erzeugten Formularelemente.

            Da ich meine "ist wer doppelt"-Funktion per array gelöst habe, ist also jetzt alles ok.


            Besten Dank

            Kommentar

            Lädt...
            X