Daniel (nun registriert): document.formular.feld.value variabel machen?

Hallo,
habe folgenden Code:

<script language="javascript">  
  
function test(dasfeld)  
{  
  var formular="loginform";  
  alert(""+formular+""); //funktioniert  
  
  /* wie erreiche ich, das "formular" im folgenden  
  durch seinen Wert "loginform" ersetzt wird? */  
  var feld=document.formular.dasfeld.value;  
  alert(""+feld+"");  
}  
  
</script>  
  
<form name="loginform">  
<input type="text" id="testfeld" onkeyup="test('this.id')">  
</form>

Meine Frage steht bereits als Kommentar im Code:
Wie erreiche ich, das "formular" durch seinen Wert "loginform" ersetzt wird?

Schonmal vielen Dank :-)

  1. Hi,

    var formular="loginform";
      /* wie erreiche ich, das "formular" im folgenden
      durch seinen Wert "loginform" ersetzt wird? */
      var feld=document.formular.dasfeld.value;

    durch die alternative Schreibweise:

    var feld=document[formular].dasfeld.value;

    Aber wo ist eigentlich dein Formularelement mit dem Namen "dasfeld"?

    alert(""+feld+"");

    Und die Stringverknüpfung mit einem Leerstring ist auch nicht wirklich sinnvoll, oder? Wenn du Begrenzungszeichen hinzufügen willst, okay, aber so wie's dasteht, ist das ziemlich sinnfrei.

    Ciao,
     Martin

    --
    Zur Abwechslung mal keine Signatur.
    1. var feld=document[formular].dasfeld.value;

      Vielen Dank, funktioniert super (auch wenn ich erst dachte. du hättest n Punkt vor [formular] vergessen...)

      Aber wo ist eigentlich dein Formularelement mit dem Namen "dasfeld"?

      Hier: <input type="text" id="testfeld" onkeyup="test(this.id)">
      (eben war noch n kleiner Fehler drinne, 'this.id' statt nur this.id)

      alert(""+feld+"");

      Und die Stringverknüpfung mit einem Leerstring ist auch nicht wirklich sinnvoll, oder?

      Anfangs hieß das, was nun dasfeld heißt noch feld, habe vergessen das zu ändern :

      Wenn du Begrenzungszeichen hinzufügen willst, okay, aber so wie's »» dasteht, ist das ziemlich sinnfrei.

      Da stimme ich dir zu, aber was meinst du mit den Begrenzungszeichen?

      1. Hi,

        Wenn du Begrenzungszeichen hinzufügen willst, okay, aber so wie's »» dasteht, ist das ziemlich sinnfrei.
        Da stimme ich dir zu, aber was meinst du mit den Begrenzungszeichen?

        ganz einfach: Wenn ich mir Stringwerte zur Kontrolle mit alert() ausgeben lasse, setze ich gern vorn und hinten irgendein Begrenzungszeichen dran, beispielsweise
          alert("[" + variable + "]");
        Dann sehe ich im alert-Fenster auch, ob am Anfang oder am Ende des Strings noch Leerzeichen stehen, die mich vielleicht bei anderer Gelegenheit stören könnten.

        Schönen Sonntag noch,
         Martin

        --
        Wer im Glashaus sitzt, sollte Spaß am Fensterputzen haben.
    2. Hi,

      var feld=document[formular].dasfeld.value;

      was ist, wenn das Document-Objekt über eine Eigenschaft dieses Namens verfügt? Oder über ein Bild? Explicit is better than implicit: document.forms[formular]

      Wobei ich ohnehin nie verstehe, warum bei JavaScript ständig irgendwelche Strings übergeben werden, anstatt Referenzen. JavaScript ist herrlich objektorientiert.

      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
      1. Hi Cheatah,

        var feld=document[formular].dasfeld.value;
        was ist, wenn das Document-Objekt über eine Eigenschaft dieses Namens verfügt? Oder über ein Bild? Explicit is better than implicit:

        mit der Ansicht liegen wir vollkommen auf einer Linie ("Warning: This material may contain explicit language and illustrations"). Ich habe vor meinem Posting kurz nachgedacht, ob ich die Anweisung dementsprechend ergänzen sollte, habe mich dann aber entschlossen, die Formulierung aus dem OP möglichst genau wiederzugeben.

        document.forms[formular]...

        Ist allemal besser und macht im Zweifelsfall weniger Kopfschmerzen.

        Wobei ich ohnehin nie verstehe, warum bei JavaScript ständig irgendwelche Strings übergeben werden, anstatt Referenzen. JavaScript ist herrlich objektorientiert.

        Ja, allerdings - wenn man den objektorientierten Ansatz denn nutzt. Oft sieht man aber "typische" Bildwechsel-Scripts, bei denen am Anfang mehrere image-Objekte erzeugt werden ...

        ~~~javascript img1off = new Image();
          img1off.src = "blah.jpg";
          img1on  = new Image();
          img1on.src  = "blue.jpg";

          
        und später im Code wird dann von diesen image-Objekten immer nur die src-Eigenschaft zugewiesen ...  
          
          `document.images['btn'].src = img1on.src;`{:.language-javascript}  
          
        anstatt entweder gleich das ganze fertig initialisierte Objekt auszutauschen (oder nur die neuen Bild-URLs zuzuweisen, dann aber konsequent auf die vorbereiteten Objekte zu verzichten):  
          
          `document.images['btn'] = img1on;`{:.language-javascript}  
          
        Da frage ich mich dann meistens, ob's am fehlenden Verständnis liegt oder an der Einstellung "geht doch, was soll ich mir da Gedanken machen".  
          
        Schönen Tag noch,  
         Martin  
        
        -- 
        Moskito, ergo summ.
        
        1. Hi,

          mit der Ansicht liegen wir vollkommen auf einer Linie

          alles andere hätte mich gewundert ;-)

          Wobei ich ohnehin nie verstehe, warum bei JavaScript ständig irgendwelche Strings übergeben werden, anstatt Referenzen. JavaScript ist herrlich objektorientiert.
          Ja, allerdings - wenn man den objektorientierten Ansatz denn nutzt.

          Ich weiß, was Du meinst. Allerdings fühle ich mich gezwungen, ein "Wie sollte man nicht?" in den Raum zu werfen.

          Oft sieht man aber "typische" Bildwechsel-Scripts, bei denen am Anfang mehrere image-Objekte erzeugt werden ...

          Ja, richtig. Auch dann könnte man allerdings img1on als Objekt übergeben.

          Da frage ich mich dann meistens, ob's am fehlenden Verständnis liegt oder an der Einstellung "geht doch, was soll ich mir da Gedanken machen".

          IMHO normalerweise am letzteren. Was allerdings den Effekt hat, ersteres nicht zu verändern. Nun ja ...

          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