Jones: Problem bei createElement()

Sers,

gestern hab ich mal wieder etwas ausprobiert und bin leider an einer
Kleinigkeit hängen geblieben. Nun, auf zum Problem!

function mk_select(name){
 var select = document.createElement("select");

if(!select) return 0;
 select.id = name;
 select.name = name;
 document.all.myDiv.appendChild(select);
}

Die Funktion an sich läuft einwandfrei, aber nachdem die Selectbox
erzeugt wurde und nun sichtbar ist; steht nun folgender Auszug im <DIV> (myDiv).

...
<select id="_NAME_" ></select>
...

Also Leute, wie kann man auf das Attribute "name" zugreiffen?
In <script>for(var obj in select) alert(obj)</script> findet man auch keine
relevanten Hinweise. Den einzigen Workaround den ich gefunden habe ist
<script>select.Name = name;</script>.

  1. hi

    document.all.myDiv.appendChild(select);

    hier erstmal:
    document.getElementById("myDiv").appendChild(select);

    <select id="_NAME_" ></select>

    also das name="" wird nicht gesetzt? Versuch's man hinterher über
    document.getElementById(name).name=name;

    Grüße aus Bleckede

    Kai

    1. hi

      hier erstmal:
      document.getElementById("myDiv").appendChild(select);

      Es funktioniert beides!

      document.getElementById(name).name=name;

      Ja, dies wäre auch eine Möglichkeit.
      Nur rein vom Konzept her, würde diese Art leider zu Problemen in den Dialogen führen.
      Aber trotzdem Danke für diesen Workaround!

      Jones

      1. hi

        document.getElementById("myDiv").appendChild(select);
        Es funktioniert beides!

        <gebetsmuehle>aber nur im IE</gebetsmuehle>

        Nur rein vom Konzept her, würde diese Art leider zu Problemen in den Dialogen führen.

        ..wieso? Kann doch innerhalb der Funktion direkt hinter den eigentlichen Einbau passieren...

        Grüße aus Bleckede

        Kai

        1. Nochmal sers

          document.getElementById("myDiv").appendChild(select);
          Es funktioniert beides!
          <gebetsmuehle>aber nur im IE</gebetsmuehle>

          <uninteressant>
          Natürlich nur im IE, diese Funktion gehört zu einem
          CMS-Editor der ausschließlich im IE funktioniert (Dies SOLLTE auch so bleiben)!
          </uninteressant>

          Nur rein vom Konzept her, würde diese Art leider zu Problemen in den Dialogen führen.
          ..wieso? Kann doch innerhalb der Funktion direkt hinter den eigentlichen Einbau passieren...

          Grund:
          Das jeweilige Objekt wird in einer Variable gespeichert, dieses Objekt
          wird wiederrum von anderen Methoden in der CMS-Editor Klasse manipuliert!

          Jones

          1. hi

            <uninteressant>
            Natürlich nur im IE, diese Funktion gehört zu einem
            CMS-Editor der ausschließlich im IE funktioniert (Dies SOLLTE auch so bleiben)!
            </uninteressant>

            1. traurig genug, das du darauf stolz zu sein scheinst, das dein Kram nicht anständig funktioniert, sondern nur mit einem Programm nutzbar ist, das immer mehr Firmen auf ihren Intranets verbannen
            2. sagt das vorher, sonst wird hier von eienr normalen Internetseite ausgegangen.
            3. gibt es schon eine Stelle, wo ich mich beschweren kann?

            Grüße aus Bleckede

            kai

  2. Hallo,

    function mk_select(name){
    var select = document.createElement("select");

    if(!select) return 0;
    select.id = name;
    select.name = name;
    document.all.myDiv.appendChild(select);
    }

    Die Funktion an sich läuft einwandfrei, aber nachdem die Selectbox
    erzeugt wurde und nun sichtbar ist; steht nun folgender Auszug im <DIV> (myDiv).

    ...
    <select id="_NAME_" ></select>
    ...

    Deine Funktion erzeugt bei mir eine SELECT-Box ohne weitere Textausgaben im DIV.

    Also Leute, wie kann man auf das Attribute "name" zugreiffen?

    select.setAttribute("name",name);
    funktioniert offenbar, wird aber durch alert(document.all.myDiv.innerHTML); nicht als name="..." angezeigt, mit alert(document.all.myDiv.firstChild.name); jedoch ausgegeben.

    MfG, Thomas

    1. Sers,

      Deine Funktion erzeugt bei mir eine SELECT-Box ohne weitere Textausgaben im DIV.

      Ja, genau! Zur Vereinfachung des Quelltextes habe ich einiges aus dem Programmcode entfernt!

      select.setAttribute("name",name);
      funktioniert offenbar, wird aber durch alert(document.all.myDiv.innerHTML); nicht als name="..." angezeigt, mit alert(document.all.myDiv.firstChild.name); jedoch ausgegeben.

      Die Möglichkeit mit setAttribute habe ich ebenfalls ausgeschöpft und das Problem tratt ebenfalls auf (s. oben)!

      Der Einzige Trick wäre: select.Name = "testNAME";

      Jones

      1. Hallo,

        Der Einzige Trick wäre: select.Name = "testNAME";

        Dann gibt es ein Attribut "Name" und document.all.myDiv.firstChild.name ist leer, aber document.all.myDiv.firstChild.Name zeigt einen Wert ...

        Sofern man auf "name" oder "Name" spaeter zugreifen kann, mag das kein Problem sein.

        MfG, Thomas

        1. Hallo,

          Der Einzige Trick wäre: select.Name = "testNAME";
          Dann gibt es ein Attribut "Name" und document.all.myDiv.firstChild.name ist leer, aber document.all.myDiv.firstChild.Name zeigt einen Wert ...

          Ja, das stimmt ebenfalls! Aber im Quelltext ist nun folgendes zu erkennen:
          <select id="name" Name="name">...</select>
          Und somit wäre es möglich von "zurückgebliebenen" Browsern auf das Formelement zugreiffen zu können.

          Sofern man auf "name" oder "Name" spaeter zugreifen kann, mag das kein Problem sein.

          Gott sei Dank, ja!
          ----------
          <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
          <html>
          <head>
          <title> New Document </title>
          </head>

          <body>
          <form>
          <input type="text" Name="test">
          <input type="button" value="Gib mir die INFO" onClick="alert(document.forms[0].test.value)">
          </body>
          </html>
          ----------
          Funktioniert im IE und NS UND OP6!

          MfG, Thomas

          thx Jones

          1. <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
            <html>
            <head>
            <title> New Document </title>
            </head>

            <body>
            <form>
            <input type="text" Name="test">
            <input type="button" value="Gib mir die INFO" onClick="alert(document.forms[0].test.value)">
            </form>
            </body>
            </html>