heinetz: getElementBy

Hallo Forum,

bevor ich irgendwelche Scheifen programmiere, die u.U.
überflüssig sind:

<input name="eingabe" />

MyObj = document.forms[0].elements['eingabe'];

... und dann würde ich gerne auf MyObj Methoden anwenden,
als hätte ich MyObj über document.getElementById('eingabe')
belegt. Z.B. :

MyObj.insertBefore()

Ich mutmasse, dass ich das nicht einfach so machen kann,
weil ich das element des Forms zu fassen habe und nicht
das Objekt im Dokumentbaum.

Die Frage ist also:

Wie komme ich über das element im Form an das Objekt im
Dokumentbaum ?

danke für tipps und

beste gruesse,
heinetz

  1. @@heinetz:

    nuqneH

    Ich mutmasse, dass ich das nicht einfach so machen kann,
    weil ich das element des Forms zu fassen habe und nicht
    das Objekt im Dokumentbaum.

    Du hast wirklich Mut in Massen. Man könnte auch sagen: Tollkühnheit. Mut in Maßen wären angebracht.

    Wie komme ich über das element im Form an das Objekt im
    Dokumentbaum ?

    Du hast es bereits.

    Qapla'

    --
    Volumen einer Pizza mit Radius z und Dicke a: pi z z a
    1. ja ja, wie recht ihr habt ;) ich hätte nicht damit gerechnet,
      dass das geht und habe den Beitrag daher geschrieben, bevor
      ich's ausprobierte. Sorry für diese überflüssige Frage!

      heinetz

  2. Hallo,

    MyObj = document.forms[0].elements['eingabe'];
    ... und dann würde ich gerne auf MyObj Methoden anwenden, als hätte ich MyObj über document.getElementById('eingabe') belegt. Z.B. :
    MyObj.insertBefore()

    auf welchem der vielen möglichen Wege du die Referenz auf ein Elementobjekt bekommst, ist völlig wurscht. Ob mit getEmelentById() oder forms[].elements[], letztendlich verweisen sie auf dasselbe Objekt.

    Ich mutmasse, dass ich das nicht einfach so machen kann, weil ich das element des Forms zu fassen habe und nicht das Objekt im Dokumentbaum.

    Es gibt keinen Unterschied.

    Die Frage ist also:
    Wie komme ich über das element im Form an das Objekt im Dokumentbaum ?

    Die erübrigt sich damit. Das überschüssige Leerzeichen ebenso.

    Ciao,
     Martin

    --
    Man sollte immer wissen was man sagt
     - aber auf keinen Fall alles sagen, was man weiß.
  3. hi,

    Wenn Du magst, kannste ja hier mal weiterschreiben

      
    // Serialize  
    function readForm(){  
    	var params = new Array();  
    	var inputfields = document.getElementsByTagName('input');  
    	for(var i=0; i < inputfields.length; i++){  
    		if(inputfields[i].type == 'text'){  
    			params.push(inputfields[i].name + '=' + encodeURIComponent(inputfields[i].value));  
    		}  
    		else if( inputfields[i].type == 'radio' ){  
    			if(inputfields[i].checked == true) params.push(inputfields[i].name + '=' + inputfields[i].value);  
    		}  
    		else if(inputfields[i].type == 'checkbox'){  
    			if(inputfields[i].checked == true) params.push(inputfields[i].name + '=' + inputfields[i].value);  
    		}  
    	}  
    	var textas = document.getElementsByTagName('textarea');  
    	for(var i=0; i < textas.length; i++){  
    		params.push(textas[i].name + '=' + encodeURIComponent(textas[i].innerHTML));  
    	}  
    	return params.join('&');  
    }  
    
    

    Da fehlen noch die Selects ;-)

    Hotti

  4. Hi,

    MyObj = document.forms[0].elements['eingabe'];

    Wenn es mehrere Elemente mit name='eingabe' gibt *), hast Du hier nicht ein Element, sondern eine Collection.

    Hat man hier nicht sogar immer eine Collection? So daß man das erste (und ggf. einzige) Element erst noch mit [0] holen muß?

    *) z.B. bei radiobuttons.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Hi,

      Hat man hier nicht sogar immer eine Collection?

      völlig richtig: Die hat man nicht sogar immer.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
    2. moin,

      *) z.B. bei radiobuttons.

      Du meinst checkbox und multiple select. Bei mehreren radiobuttons mit gleichen Namen ist es so, dass der Browser nur den value desjenigen radiobuttons überträgt, der zum Zeitpunkt des Submit das Attribut checked hat und das ist bei radiobuttons nur Einer.

      Eine JS-Funktion, die ein Formular ausliest für Ajax etwa, sollte das genauso tun wie ein Browser.

      Hotti

      1. *) z.B. bei radiobuttons.

        Du meinst checkbox und multiple select. Bei mehreren radiobuttons mit gleichen Namen ist es so, ...

        und bei allen anderen Formularelementen ist es auch so.

        Struppi.

      2. Hi,

        *) z.B. bei radiobuttons.

        Du meinst checkbox und multiple select.

        Nein, meine ich nicht.

        Bei mehreren radiobuttons mit gleichen Namen ist es so, dass der Browser nur den value desjenigen radiobuttons überträgt,

        Es geht doch hier gar nicht um die Übertragung, sondern auf die Elemente im DOM.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
        1. hi,

          Es geht doch hier gar nicht um die Übertragung, sondern auf die Elemente im DOM.

          Naja, wenn das so ist, also, in sonem Fall würde ich da den Formularelementen nicht allen den gleichen Namen geben ;-)

          Hotti

          1. Hi,

            Es geht doch hier gar nicht um die Übertragung, sondern auf die Elemente im DOM.

            Naja, wenn das so ist, also, in sonem Fall würde ich da den Formularelementen nicht allen den gleichen Namen geben ;-)

            Was bei Radio-Buttons, die eine Gruppe bilden sollen, ja auch wieder furchtbar clever wäre ...

            MfG ChrisB

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]