bert: value innerhalb des inputtags setzen

Hi,

ich möchte per js den value von inputs setzen. damit ich bei allen inputs den gleichen code nutzen kann (value="get_value(this.name)") müsste das innerhalb des inputs passieren. Bei dieser Variante wird allerdings der Text get_value(this.name) ausgegeben. Gibt es einen Eventhandler a la onload für inputs?

oder kann ich irgendwo im tag this.value=get_value(this.name) unterbringen?
danke und gruß

  1. ich möchte per js den value von inputs setzen. damit ich bei allen inputs den gleichen code nutzen kann (value="get_value(this.name)") müsste das innerhalb des inputs passieren. Bei dieser Variante wird allerdings der Text get_value(this.name) ausgegeben. Gibt es einen Eventhandler a la onload für inputs?

    Nein.

    oder kann ich irgendwo im tag this.value=get_value(this.name) unterbringen?

    Vielleicht. Du müßtest genauer beschreiben was du willst. Wobei dein Konstrukt seltsam aussieht, wozu this.name?

    Struppi.

  2. hi,

    ich möchte per js den value von inputs setzen. damit ich bei allen inputs den gleichen code nutzen kann (value="get_value(this.name)") müsste das innerhalb des inputs passieren.

    nein, du kannst auch mit <elementobjekt>.on<click|mouseover|etc.> = function() {this.value = get_value(this.name);} dirket aus dem Script deinen Wert setzen.

    Bei dieser Variante wird allerdings der Text get_value(this.name) ausgegeben.

    Dies ist auch nicht sehr verwunderlich, da der Tag kein Eventhandler ist (beginnt nicht mit "on"), d.h. er wird nicht geparst.

    Gibt es einen Eventhandler a la onload für inputs?

    Nein, gibt es nicht; aber du kannst einen window.onload definieren und darin auf die "Inpütter" ;-) zugreifen. Das sehe dann ca. so aus:

      
    onload = function() {  
      var Inpuetter = document.getElementsByTagName('input');  
      for(var Zaehler = 0; Zaehler < Inpuetter.length; Zaehler++)  
        Inpuetter[Zaehler].value = get_value(Inpuetter[Zaehler].name);  
    }  
    
    

    oder kann ich irgendwo im tag this.value=get_value(this.name) unterbringen?

    Meiner Meinung nach solltest du das schon serverseitig unterbringen. In PHP würde das beispielsweise so aussehen: <input value="<?php echo get_value($<Variable, wo Name gesp.>); ?>"> Die einzigen Berechtigungen, dies per JavaScript durchzuführen, sind:
      1. Nur User mit aktiviertem Scripting sollen diese Werte gesetzt bekommen. Dies ist bei Hiddenfeldern sinnvoll, in welchen herausgefunden werden soll, ob der Client JavaScript aktiviert hat.
      2. Wenn Teile des generierten Wertes Eigenschaften, die nur in JavaScript existieren, erfordern.

    lg JeSchnell

    1. Dies ist auch nicht sehr verwunderlich, da der Tag kein Eventhandler ist (beginnt nicht mit "on"), d.h. er wird nicht geparst.

      Der Tag ist auch kein Tag, es ist ein Attribut.

      Gibt es einen Eventhandler a la onload für inputs?
      Nein, gibt es nicht; aber du kannst einen window.onload definieren und darin auf die "Inpütter" ;-) zugreifen. Das sehe dann ca. so aus:

      Oder einfach im HTML Code, den JS Code, hinter den Elementen platzieren, dann braucht man nicht auf das Laden aller Bilder warten.

      Struppi.

      1. hi,

        Dies ist auch nicht sehr verwunderlich, da der Tag kein Eventhandler ist [...]
        Der Tag ist auch kein Tag, es ist ein Attribut.

        Sorry, kleiner Denkfehler.

        lg JeSchnell

  3. @@bert:

    nuqneH

    damit ich bei allen inputs den gleichen code nutzen kann (value="get_value(this.name)") müsste das innerhalb des inputs passieren.

    Nein, müsste es nicht.

    Gibt es einen Eventhandler a la onload für inputs?

    @onload gibt es nicht für 'input'. [HTML401 §17.4]

    oder kann ich irgendwo im tag this.value=get_value(this.name) unterbringen?

    Eher nicht. Aber in einem Array:

    var inputdefaults = [  
      ["foo", "Foo"],  
      ["bar", "Bar"]  
    ];
    

    Dann gehst du die im Array vermerkten Inputfelder durch:

    var myForm = document.myForm;  
    if (myForm)  
    {  
      for (var i = 0; i < inputDefaultValues.length; i++)  
      {  
        var input = myForm[inputDefaultValues[i][0]];  
        if (input) input.value = inputDefaultValues[i][1];  
      }  
    }
    

    Voraussetzung dafür ist, dass 'form' und die 'input' @name haben:

    <form name="myForm" action="">  
      <input type="text" name="foo"/>  
      <input type="text" name="bar"/>  
    </form>
    

    Mit IDs lässt sich das natürlich auch machen; die Anpassungen überlasse ich dir.

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)