sunar: zugriff auf array feldnamen

hallo,

angenommen ich habe ein formfeld wie folgt:

<input type="text" name="data[vorname]">

wie kann ich nun mit javascript auf dieses feld zugreifen, um beispielsweise den wert auszulesen ?

tia & mfg
sunar

  1. Hi,

    Du bewegst Dich mit der Zeile <input type="text" name="data[vorname]"> in HTML. HTML kennt keine Variablen oder gar Arrays. Um Arrays hier nutzen zu können, musst Du die Zeile selber mit JavaScript schreiben, etwa so:

    document.write('<input type="text" name="' + data[vorname] + '">');

    Das könntest Du dann wieder über z.B. document.forms[0].data[vorname].value (evtl. ist eval drumrum notwendig) auslesen.

    Grüße,

    Utz

    1. Du bewegst Dich mit der Zeile <input type="text" name="data[vorname]"> in HTML.

      sorry hab mich missverständlich ausgedrückt.
      klar ist das kein "html array" und auch kein js array...
      aber es wird teil eines php arrays nach dem submit ;-)

      aber ich will eben trotzdem vor dem submit per js auf diese felder zugreifen können...darum gehts ;-)

      mfg
      sunar

      1. aber ich will eben trotzdem vor dem submit per js auf diese felder zugreifen können...darum gehts ;-)

        habs jetzt fürs erste mal so gelöst:

        function zahlungsweise()
        {
         if (document.sub4.elements[3].options[1].selected){
           with (document.sub4) {
             for (var i=0; i < elements.length; i++) {
                 if (elements[i].id == 'bankdata'){
                    elements[i].readOnly = true;
              elements[i].style.backgroundColor='cccccc';
           }
             }
           }
         }
        }

        mein problem ist damit gelöst, aber es würde mich für die zukunft trotzdem interessieren wie ich auf felder mit [ ] im namen zugreifen kann :)

        mfg
        sunar

        1. Hallo,

          mein problem ist damit gelöst, aber es würde mich für die zukunft trotzdem interessieren wie ich auf felder mit [ ] im namen zugreifen kann :)

          Hmmm. Direkt geht's nicht. Probier's mal so (nicht getestet):

          -----------------------------------------------------------------
          function return_form_element (form_obj, elem_name)  {
            for (var i=0; i < form_obj.elements.length; i++) {
              // hmmm - ich hab' jetzt einfach mal aus deinem
              // Quelltext das mit .id übernommen, da das bei dir
              // funktioniert aber gehört da nicht eigentlich .name hin?
              if (form_obj.elements[i].id == elem_name){
                return form_obj.elements[i];
              }
            }
            return false;
          }

          [...]

          mein_element = return_form_element(document.forms[0], 'data[vorname]');
          [...]
          -----------------------------------------------------------------

          Grüße,

          Christian

          1. Ooops ....

            hab' gerade http://forum.de.selfhtml.org/?m=107836&t=19156 gelesen. Dachte halt, elements[] wäre nur ein normaler und kein assoziativer Array. So kann man sich täuschen.

            Grüße,

            Christian

            1. »»So kann man sich täuschen.

              der wille zählt ;-)

  2. Hallo.

    <input type="text" name="data[vorname]">

    wie kann ich nun mit javascript auf dieses feld zugreifen, um beispielsweise den wert auszulesen ?

    document.forms[0].elements["data[vorname]"].value

    Gruß
    Norbert

    1. document.forms[0].elements["data[vorname]"].value

      dankeschön, funktioniert 1a :)