marc01: Select-Liste mit Javascript füllen

Hallo,

ich fülle mittels eines Ajax-Requests eine Select-Liste auf diese Art und Weise:

  
  
 function ctrlReferenceAddRef(name, idx, ref, title){  
  var select = document.getElementById(name + '_content');  
  var opt = document.createElement('option');  
  
  
  var rx = /r_(page|element)\((\d+)\)/;  
    rx.exec(ref);  
    str = '';  
    if (RegExp.$1 == 'page') {  
     str += 'Seite: ' + RegExp.$2 + ' - ' + title;  
    }  
    else if (RegExp.$1 == 'element') {  
     str += 'Element: ' + RegExp.$2 + ' - ' + title;  
    }  
  
  var text = document.createTextNode(str);  
  opt.appendChild(text);  
  opt.setAttribute('value',ref);  
  select.appendChild(opt);  
  //ctrlReferenceBuildFileList(name, idx);  
 }

Das wird dann auch richtig angezeigt und die Values werden auch korrekt gesetzt. Wenn ich das Formular aber absende, werden die Werte aus der Liste offenbar nicht mit übermittelt.

Bis jetzt habe ich das umgangen, indem ich einfach für jeden Wert ein hidden-Input-Feld erzeugt habe und dort den jeweiligen Wert reinschrieb. Aber das kann ja keine Lösung sein...

Weiß da jemand Abhilfe?

  1. Hi,

    var text = document.createTextNode(str);
      opt.appendChild(text);
      opt.setAttribute('value',ref);
      select.appendChild(opt);

    Hast du es mal mit new Option probiert?

    select.options[select.options.length] = new Option(text, ref);

    Gruß!

    1. Ja - Dasselbe Resultat

      1. Ganz großer Fehler meinerseits: Natürlich kann man mit einer Select-Liste nur einen Wert übergeben, bzw. mehrere, wenn sie selektiert sind. Es können nicht alle Werte in einer Select-Liste übergeben werden..

        *Ankopfklatsch*

        1. Es können nicht alle Werte in einer Select-Liste übergeben werden..

          Doch du musst sie nur selektieren.

          Struppi.