gary: Variabel in read only feld ?

Hallihallo,

zu später Stunde noch ne Frage für Morgen:

Ich habe z.B. eine Variable mit einem berechneten Wert. Nun möchte ich diesen Wert in einem readonly Formularfeld ausgeben.(Der Kunde soll nicht die möglichkeit haben, seine preise selber einzutippen, deswegem Eingabe gesperrt.

Das hab ich bis Jetzt geschafft:

<html>
<head>
<title>Testwert Zahl 5 ausgeben</title>
<script type="text/javascript">
var Feldausgabe = 5;
</script>
</head>
<body>
<form action="input_text_value.htm">
  <p><input name="preis" type="text" size="8" value="Feldausgabe" readonly></p>
</form>
</body>
</html>

Ich habe hinter value mit und ohne "" probiert. Vielleicht liegt es aber auch an der type="text" Einstellung. Ein Schlüsselwort für Zahlen habe ich nicht gefunden.

MfG

gary

  1. Grütze .. äh ... Grüße!

    <script type="text/javascript">
    var Feldausgabe = 5;
    </script>

    <p><input name="preis" type="text" size="8" value="Feldausgabe" readonly></p>

    Ich habe hinter value mit und ohne "" probiert. Vielleicht liegt es aber auch an der type="text" Einstellung. Ein Schlüsselwort für Zahlen habe ich nicht gefunden.

    Das Attribut value im <input> brauchst du nur, wenn du eine Vorbelegung haben willst.

    und im Scriptbereich:

    var Feldausgabe = 5;  
    document.getElementsByName("preis")[0].value = Feldausgabe;
    

    Das funktioniert aber genau so, wie ich es geschrieben habe nur, wenn NUR dieses
    eine Element den Namen "preis" trägt oder es das erste Element im html mit diesem Namen
    ist (index 0). Ansonsten muß der Index entsprechend erhöht werden.

    Wenn nur ein Element "preis" heißen soll, ist es besser, statt oder zusätzlich zu dem Namen
    eine Id zu vergeben: <input id="preis" ...> und dann mit
    document.getElementById("preis").value = Feldausgabe;
    den Wert zu setzen.


    Kai

    --
    Der vertuschte Gefahrstoff: Dihydrogenmonoxid
       +---------+
       |   ___   |
    ---+--|_R_|--+---- Widerstand ist zwecklos
    ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
    1. Hallo zusammen,

      Mein Dank an euch beide. Ich habe aber allerdings die Version vom Kai gebraucht.

      Beim getElementsByName Befehl habe ich aber komischerweise den Feldindexwert in der eckigen Klammer [] immer auf null lassen müssen, und dies obwohl ich insgesamt 13 Ausgabefelder habe. (mit Ausgabefeld meine ich readonly Formularfelder. Wie auch immer es funktioniert soweit einwandfrei.

      Danke nochmals gruss gary

      1. Grütze .. äh ... Grüße!

        Beim getElementsByName Befehl habe ich aber komischerweise den Feldindexwert in der eckigen Klammer [] immer auf null lassen müssen, und dies obwohl ich insgesamt 13 Ausgabefelder habe.

        Aber wahrscheinlich nur eines davon mit dem Namen "preis", oder es ist das erste
        im HTML mit name="preis" . Daher muß dann die [0] bleiben.

        Anders wäre es, wenn man getElementsByTagName("input") benutzen würde, dann
        müßte der Index auf die entsprechende Position angepaßt werden.


        Kai

        --
        Der vertuschte Gefahrstoff: Dihydrogenmonoxid
           +---------+
           |   ___   |
        ---+--|_R_|--+---- Widerstand ist zwecklos
        ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
  2. Hallo gary,

    Der Kunde soll nicht die möglichkeit haben, seine preise selber einzutippen, deswegem Eingabe gesperrt.

    Warum willst du den Wert per JS eingeben? In dem gegebenen Stück Code kann er besser direkt per value angegeben werden. Wenn du ihn per JS erst zusammen rechnest ist Kais Weg richtig.

    Dennoch gilt: Berechne den Preis noch einmal auf dem Server. Traue nie Daten, die vom Client kommen.
    Schließlich kann der Kunde auch per JavaScript den Wert verändern... das kannst du auch nicht unterbinden.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates