Permafrost: JS: Probleme mit prototype: $F()

hallo
ich habe mir prototype 1.6.0.2 heruntergeladen: http://www.prototypejs.org/download
Nun experimentiere ich mit den funktionen $('id') und $F('id'). Habe ein Prob. mit der Beschreibarkeit der Variablen.

ich habe zB. ein <div> mit der id "display". Folgendes funktioniert:
 $("display").innerHTML = txt;
hat funktioniert, kann also beschrieben werden.

Dann habe ich ein Formular mit Namen "formular". Ein Feld mit Namen "ort" hat die gleichlautende id - wie prototype vorschreibt. Die Felder sollen aber nicht nur gelesen, auch beschrieben werden.

Dies hat nicht funkt.:
 $F("ort").value = wert1;

Probier ich dies:
 $F("ort") = wert1;
kommt in der Firefox-Fehlerkonsole: "Invalid assignment left-hand side"

schliesslich musste ich auf dies zurückgreifen:
 document.formular.ort.value = wert1;

kann ich diese $F("") also nur lesen?

hier ist die Doku, aus der das leider nicht hervorgeht:
http://www.sergiopereira.com/articles/prototype.js.html#Dollar_F_Function

Danke, Gruß

  1. kann ich diese $F("") also nur lesen?

    Ja.

    hier ist die Doku, aus der das leider nicht hervorgeht:
    http://www.sergiopereira.com/articles/prototype.js.html#Dollar_F_Function

    Geht aus der aktuellen Referenz durchaus hervor:
    http://prototypejs.org/api/utility/dollar-f
    http://prototypejs.org/api/form/element/getValue

    schliesslich musste ich auf dies zurückgreifen:
    document.formular.ort.value = wert1;

    Vermutlich bietet Prototype noch eine elegantere Art, aber da müsstest du mal forschen, auf die Schnelle habe ich nichts gefunden.

    Mathias

  2. Hallo,

    ich habe mir prototype 1.6.0.2 heruntergeladen [...]

    hier ist die Doku, aus der das leider nicht hervorgeht:

    Unter prototypejs.prg gibt es übrigens die aktuellere Dokumentation.

    Dies hat nicht funkt.:
    $F("ort").value = wert1;

    »$F: Returns the value of a form control. This is a convenience alias of Form.Element.getValue. Refer to it for full details.«

    Ja, $F() gibt als nur den Wert zurück. Wenn Du das Element selber haben willst, nimm $('ort'), für den Wert dann also $('ort').value. Effektiv braucht man $F() gar nicht.

    Tim

    1. vielen Dank für die wie immer schnelle Hilfe! ok da habe ich wohl die falsche doku erwischt oder, wie so oft nicht richtig nachgelesen.

      Mit $('') geht es jetzt und $F('') kann ich wohl vergessen. Habe aber noch probleme mit: $('feldname').focus() das will nicht funktionieren, das krieg ich aber schon noch hin :)

      Danke, Gruß schönen Sonntag

    2. Hi,

      [Prototype]
      Ja, $F() gibt als nur den Wert zurück. Wenn Du das Element selber haben willst, nimm $('ort'), für den Wert dann also $('ort').value. Effektiv braucht man $F() gar nicht.

      Das gilt effektiv ja genauso fuer Prototype.

      MfG ChrisB

      --
      „This is the author's opinion, not necessarily that of Starbucks.“