Forum Doku Wiki Blog

Forumsarchiv 2007, April
JavaScript generiertes Formular auslesen

archivierte Beiträge lesen

  1. (JAVASCRIPT) JavaScript generiertes Formular auslesen von thomasp, 19. 04. 2007, 12:49

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 12:49 Uhr von thomasp veröffentlicht.

Hallo!

Habe mir mit JavaScript ein Forumlar erstellt.
Mein Problem ist, dass ich die Felder des Formulars mit dem Internet Exlporer (ich benutze 7.0) nicht über deren Namen auslesen kann. Mit Firefox funktioniert es.
Hier ist ein kurzes Beispiel.

function createForm()
{
  var form = document.createElement("form");
  form.name = "fomular";

  var inputDomain = document.createElement("input");
  inputDomain.setAttribute("type","text");
  inputDomain.name="feld1";
  inputDomain.setAttribute("autocomplete","off");
  inputDomain.setAttribute("maxlength","20");

  var button = document.createElement("input");
  button.setAttribute("type","button");
  button.onclick = onBtnValue;
  button.setAttribute("value","Wert des Feldes");

  form.appendChild(inputDomain);
  form.appendChild(button);

  document.body.appendChild(form);
  document.forms[0].elements[0].focus();

}
function onBtnValue()
{
 alert(document.fomular.feld1.value);
}

Bei laden des html rufe ich die Methode createForm() auf, die die Elemente in die Seite hängt.
Dann setze ich den Focus über den "schmutzigen" Formularzugriff. Das funktioniert in beiden Browsern. Klicke ich auf den Button soll der Wert des Feldes über den Formularname/Feldnamen als Alertbox ausgegeben werden. Das funktioniert NICHT im IE.
Bitte keine Fragen warum ich das Formular nicht dirket in HTML schreibe. Ich habe meine Gründe ;-).

Gruß
Tom

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 12:51 Uhr von wahsaga veröffentlicht.

hi,

> Mein Problem ist, dass ich die Felder des Formulars mit dem Internet Exlporer (ich benutze 7.0) nicht über deren Namen auslesen kann. Mit Firefox funktioniert es.

Bekanntes Problem des IE - er fügt dynamisch generierte Formularfelder nicht so in die entsprechenden NodeLists ein, wie "statische".

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 12:57 Uhr von thomasp veröffentlicht.

> Bekanntes Problem des IE - er fügt dynamisch generierte Formularfelder nicht so in die entsprechenden NodeLists ein, wie "statische".
>
danke!

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 13:09 Uhr von planB veröffentlicht.

hallo,


> function onBtnValue()
> {
> alert(document.fomular.feld1.value);

// versuche es mal mit diesem Aufruf:
alert("Form-Name:"
  +"\nper Name: "+document.forms["fomular"].name
  +"\nper Index: "++document.forms[0].name);

alert(document.forms[0].elements[0].value)

> }
>

Ein IE-Problem: dynamisch erzeugte Forms lassen sich nicht mit Namen aufrufen, über den Index gehts (hoffe ich mal)

Gruß planB

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 14:16 Uhr von thomasp veröffentlicht.

> hallo,
>
>
> > function onBtnValue()
> > {
> > alert(document.fomular.feld1.value);
>
> // versuche es mal mit diesem Aufruf:
> alert("Form-Name:"
>   +"\nper Name: "+document.forms["fomular"].name
>   +"\nper Index: "++document.forms[0].name);

document.forms["formular"].name funktioniert auch nicht im IE.
Im IE kann ich nur über den Index zugreifen.
Das wollte ich eigentlich vermeiden, aber wenns nicht anders geht...

Gruß
Tom

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 14:27 Uhr von planB veröffentlicht.

hallo Tom,

> > alert("Form-Name:"
> >   +"\nper Name: "+document.forms["fomular"].name
> >   +"\nper Index: "+document.forms[0].name);
                      ^^^^^^ mal korrigiert

>
> document.forms["formular"].name funktioniert auch nicht im IE.
> Im IE kann ich nur über den Index zugreifen.
> Das wollte ich eigentlich vermeiden, aber wenns nicht anders geht.

das wollte ich mit dem Beispiel zeigen.

um doch noch Formulare und deren Elemente mit Namen ansprechen zu können, habe ich mir Funktionen gebaut, z.B.:


function findItemByName(feld,suchname) {
 var item = feld[suchname];
 for (var i=0; !item && i<feld.length; i++)
    if (feld[i].name == suchname ) item = feld[i];
 return item;
 }

function getFrm(name) {
 return findItemByName(document.forms,name);
 }


für die Elemente entsprechend ...

Gruß planB


JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 14:32 Uhr von thomasp veröffentlicht.


> um doch noch Formulare und deren Elemente mit Namen ansprechen zu können, habe ich mir Funktionen gebaut, z.B.:
>
>
> function findItemByName(feld,suchname) {
> var item = feld[suchname];
> for (var i=0; !item && i<feld.length; i++)
>     if (feld[i].name == suchname ) item = feld[i];
> return item;
> }
>
> function getFrm(name) {
> return findItemByName(document.forms,name);
> }
>

>
> für die Elemente entsprechend ...
>
> Gruß planB
>
>
Habs kapiert!! ;-)
Danke!

Gruß Tom

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 13:43 Uhr von Cybaer veröffentlicht.

Hi,

> Das funktioniert NICHT im IE.

Der IE unterstützt zusätzlich auch eine proprietäre Nutzung von createElement(): createElement('<input name="name">');

Mache mittels Conditional Compilation eine Weiche: IE obige Syntax, Rest der Welt die richtige Syntax.


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 13:57 Uhr von planB veröffentlicht.

hallo Cybaer,

> Der IE unterstützt zusätzlich auch eine proprietäre Nutzung von createElement(): createElement('<input name="name">');

wüsste jetzt nicht, wozu diese Konstruktion notwendig ist. Bisher kam ich ohne sie aus.

var elem=document.createElement("input");
elem.name="name";

Gruß planB

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 14:44 Uhr von Cybaer veröffentlicht.

Hi,

> wüsste jetzt nicht, wozu diese Konstruktion notwendig ist. Bisher kam ich ohne sie aus.
>
> var elem=document.createElement("input");
> elem.name="name";

Hmm, bist Du der gleiche "planB", der im Parallelposting etwas über IE-Fehler zu berichten wußte, und für den Namens-Zugriff noch extra einen Ersatz programmiert hat?

Wenn ja, dann solltest Du doch selber rückschließen können, wofür diese Konstruktion notwendig ist, oder? Sie ermöglicht die einfache Erzeugung und Benutzung von Form-Elementen ohne "Ersatzfunktionen". =;-)


Gruß, Cybaer

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 15:27 Uhr von planB veröffentlicht.

hallo,

> Wenn ja, dann solltest Du doch selber rückschließen können ...

danke, dann hab' ich's nun auch kapiert :)

und nochmal nachgelesen: MS createElement

Gruß planB

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 15:09 Uhr von wahsaga veröffentlicht.

hi,

> > Der IE unterstützt zusätzlich auch eine proprietäre Nutzung von createElement(): createElement('<input name="name">');
>
> wüsste jetzt nicht, wozu diese Konstruktion notwendig ist.

Schon mal probiert, einem dynamisch generierten Input-Feld im IE einen anderen Typ als den Default text zu verpassen?

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 15:36 Uhr von planB veröffentlicht.

hallo,

> Schon mal probiert, einem dynamisch generierten Input-Feld im IE einen anderen Typ als den Default text zu verpassen?

du denkst an "reset" ?  ja, da steht auch was zu drin: MS createElement

danke
Gruß planB

JavaScript generiertes Formular auslesen

Der folgende Beitrag wurde am 19. 04. 2007, 15:43 Uhr von wahsaga veröffentlicht.

hi,

> > Schon mal probiert, einem dynamisch generierten Input-Feld im IE einen anderen Typ als den Default text zu verpassen?
>
> du denkst an "reset" ?

Oder auch an "hidden", "image", "radio", "checkbox", "file" ...

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4