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

Objekt zur Laufzeit entfernen/erzeugen/typ ändern

Status
Für weitere Antworten geschlossen.

Puccini

Neues Mitglied
Hi!

Ich hab ein dynamisches Formular, welches beim erzeugen mit Textfeldern gefüllt wird!
Dann wird das Formular versteckt, bis der User einen Eintrag in der Tabelle anklickt.
Dann wird das Formualr eingeblendet und die Textfelder werden mit den Daten gefülllt.
Funktioniert :d
Aber:
Wenn der Text länger ist als das Textfeld, sieht der User ja die Informationen nich und muss erst im Textfeld "scrollen"....
Da hab ich mir gedacht:
Abfrage: Ist der Text länger als x-Zeichen, dann:
Mach aus Textfeld->Textarea...
geht das??
Ich will nicht alles gleich mit Textarea erzeugen, da es dort die hässlichen Pfeile an der seite gibt...
 
Hab das erstmal anders gelöst...
indem ich einen request auf eine php-seite mache und mir html-code erzeugen lasse welches die objekte beinhaltet und diesen code als string zurückgebe.
mittels innerHTML füge ich das dann in mein Div ein.
geht.

Leider hat IE irgendwie ein Problem damit, das ich die Komponenten erst zur laufzeit erstelle!
Wird JS nich eigentlich Zeilenweise abgearbeitet?
Weil wenn ich die OBejkte erzeuge und dann einfüge, dann versuche mittels document.getElementById kommt im IE immer eine fehlermeldung das das objekt noch nicht exisiterit!
Wenn ich dan nochmal auf den Datensatz drücke gehts.., weil ja die Objekte schon da sind und nicht neu erzeugt werden müssen!

:<
kann ich das irgendwie unterbinden das der so schnell ist, das es die objekte noch garnet gibt??
Code:
            //Die Eigenschaftenfelder werden mit Daten gefüllt
            var handleDaten = function(o)
            {
                Daten = new Array();
                Daten = eval(o.responseText);
                for(i=0;i<Daten[0].length;i++)
                {
                    document.getElementById("input_"+Daten[0][i]).value = Daten[1][i];
                }
            };
            
            var handleDivInhalt = function(o)
            {
                divInhalt.innerHTML = o.responseText;
            };
            
            var handleFailure = function(o)
            {
                alert("Fehler bei der Datenverarbeitung!!");
            };
            
            var callbackDivInhalt =
            {
                success:handleDivInhalt,
                failure:handleFailure
            };

            var callbackDaten =
            {
              success:handleDaten,
              failure:handleFailure
            };
            
            function ShowEigenschaften(tabelle,key,value)
            {
                //Wenn die angeforderte Tabelle nicht gleich der letzten Tabelle ist, muss  das Eigenschaftenfenster neu erstellt werden,
                //um die Textfelder und Werte für die neue Tabelle anzupassen!
                if(tabelle != lastTable)
                {
                    postData = "EingeschaftenPanelInhalt=true&Eigenschaften_Tabelle="+tabelle;
                    var requestDiv = YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackDivInhalt, postData);    
                    postData = "";
                    lastTable = tabelle;
                }
                //Holen der Datensatzdaten
                postData = "ShowEigenschaften=true&Eigenschaften_Tabelle="+tabelle+"&Eigenschaften_Key="+key+"&Eigenschaften_Value="+value;
                var requestDaten = YAHOO.util.Connect.asyncRequest('POST', sUrl, callbackDaten, postData);                
                postData = "";
                    
                YAHOO.EigenschaftenContainer.EigenschaftenPanel.show();
            }
Da sieht man in der Funktion ShowEigenschaften, das zuerst die Textfelder erzeugt werden, und dann erst die Werte eingetragen werden sollen!
:<
warum kommt dann aber trotzdem der fehler?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben