Schnapsonline: Bin am verzweifeln

Hallo Leute, ich bin am verzweifeln.
Ich habe irgendwo einen Fehler.
Das Ergebniss wird mir nicht angezeigt

hier das Script:

<script type="text/javascript">
function wasser1 {
  document.dtw3.vol.value=document.dtw3.amount.value * ( document.dtw3.conc.value - document.document.dtw3.dist.value) / document.dtw3.dist.value;

}

</script>
<ADDRESS STYLE="color: rgb(0,255,0); text-align: center; margin-bottom: 0px;"><SPAN STYLE="color: rgb(0,255,0); font-style: normal;">Angesetzter zum Verdünnen Für Liköre</SPAN></ADDRESS>
<FORM NAME="dtw3">
<CENTER><TABLE BORDER CELLPADDING=2>
<TR bgcolor="ff0000"><TD colspan=2><INPUT NAME="amount" SIZE=4 value=" 1.5"> <FONT SIZE="2"> L Eingangs Destillat mit <INPUT NAME="conc" SIZE=4 value=" 70"> % alcohol</TD>
<TR bgcolor="ff0000"><td colspan=2><FONT SIZE="2">Wieviel % Vol Ausgangs Destillat <INPUT NAME="dist" SIZE=4 value=" 40"> %
<TR bgcolor="ff0000">

<TD VALIGN="bottom" ALIGN="center"><INPUT TYPE="button" VALUE="Rechnen"
   onClick="wasser1">
<TD><FONT SIZE="2">Sie benötigen <INPUT NAME="vol" SIZE=4> L Wasser</TD>
</TR></TABLE></FORM>

kann mir jemad helfen ?

vg
Herbert

  1. Hallo Leute, ich bin am verzweifeln.
    Ich habe irgendwo einen Fehler.

    Die Fehlermeldung kannst du der JavaScript-Konsole des Browsers entnehmen.

    document.document.dtw3.dist.value

    TypeError: document.document is undefined

    Mathias

    1. Danke, hat mir sehr geholfen.
      Jetzt habe ich noch ein Problem.
      Hier der das script:

      <script type="text/javascript">
      function wasser1() {
      var sprit=getElementById('dtw3.amount.value');
        var wasser=dtw3.amount.value * ( dtw3.conc.value - dtw3.dist.value) / dtw3.dist.value;
      dtw3.vol.value=(sprit + wasser);
      }
      </script>

      sprit hat den Inhalt von 1.5
      wasser hat den Inhalt von 1.25
      In dtw3.vol.value sollte jetzt "2.75" stehen. Es steht aber "1.5.1.75" drin.
      Was habe ich falsch gemacht ?

      1. Hi,

        Was habe ich falsch gemacht ?

        Hier: Aus Ungeduld doppelt gepostet.
        Deine Frage ein mal zu stellen, reicht.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. »» <TD VALIGN="bottom" ALIGN="center"><INPUT TYPE="button" VALUE="Rechnen"  
    
    >    onClick="wasser1">
    
    

    Hi!
    Wenn du den Event Handler als Attribut notierst und eine Funktion aufrufen willst, musst du die Klammern zum Funktionsaufruf schon setzen:

      
    <TD VALIGN="bottom" ALIGN="center"><INPUT TYPE="button" VALUE="Rechnen"  
       onClick="wasser1()">
    

    im Gegensatz dazu:
    element.onclick = functionReference;
    oder
    element.addEventListener("click",functionReference,false);

    Davon abgesehen rate ich dir davon ab, alte HTML-Attribute a la bgcolor usw. zu verwenden.

    Liebe Grüße, Leo

    1. Kleiner Nachtrag:
      Dieser Code sollte eigentlich auch einen Fehler verursachen:

      function wasser1{  
      //Code  
      }
      

      Wenn du eine Funktion definierst, musst du immer die Parameterklammern setzen:

      function example()  
      {  
        //Code  
      }
      
  3. Danke, hat mir sehr geholfen.
    Jetzt habe ich noch ein Problem.
    Hier der das script:
    <script type="text/javascript">
    function wasser1() {
    var sprit=getElementById('dtw3.amount.value');
      var wasser=dtw3.amount.value * ( dtw3.conc.value - dtw3.dist.value) / dtw3.dist.value;
    dtw3.vol.value=(sprit + wasser);
    }

    </script>
    sprit hat den Inhalt von 1.5
    wasser hat den Inhalt von 1.25
    In dtw3.vol.value sollte jetzt "2.75" stehen. Es steht aber "1.5.1.75" drin.
    Was habe ich falsch gemacht ?

    1. Hi,

      In dtw3.vol.value sollte jetzt "2.75" stehen. Es steht aber "1.5.1.75" drin.
      Was habe ich falsch gemacht ?

      Du hast Strings verkettet.

      Aus Inputfeldern ausgelesene Werte sind Strings. Um mit ihnen unter Verwendung des doppelt belegten Operators + rechnen zu können, musst du sie erst in Zahlen umwandeln.
      Das geht bspw. mittels parseInt/parseFloat; oder auch in dem du sie einfach mit 1 multiplizierst, dabei werden sie automatisch in eine Zahl umgewandelt.

      MfG ChrisB

      --
      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      1. Hallo,

        oder auch in dem du sie einfach mit 1 multiplizierst, dabei werden sie automatisch in eine Zahl umgewandelt.

        ...oder einfach in die dritte Potenz erheben und die Kubikwurzel ziehen.

        Wer's gern komplizierter hat, kann auch den unären +-Operator davorsetzen:

        var a="1", b="2";  
        alert( a + b) // 12  
        alert( (+a) + (+b) ); // 3  
        
        

        SCNR ;)
        Don P

        1. [latex]Mae  govannen![/latex]

          Wer's gern komplizierter hat, kann auch den unären +-Operator davorsetzen:

          var a="1", b="2";

          alert( a + b) // 12
          alert( (+a) + (+b) ); // 3

          http://forum.de.selfhtml.org/cgi-bin/user/fo\_post  
          Zur Vervollständigung erwähne ich dann noch Number()  
          ~~~javascript
          var a="1", b="2";http://forum.de.selfhtml.org/cgi-bin/user/fo_post  
          alert(Number(a) + Number(b)); // 3  
          
          

          Vorausgehende[1] Prüfung, ob Zahlenwerte eingegeben wurden setze bei ich dem originalen Problem mit Werten aus Eingabefeldern voraus.

          Stur lächeln und winken, Männer!
          Kai

          [1] oder heißt es inzwischen vorrausgehende {SCNR}

          --
          Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
          in Richtung "Mess up the Web".(suit)
          SelfHTML-Forum-Stylesheet
          1. [latex]Mae  govannen![/latex]

            http://forum.de.selfhtml.org/cgi-bin/user/fo_post
            Zur Vervollständigung erwähne ich dann noch Number()
            [code lang=javascript]var a="1", b="2";http://forum.de.selfhtml.org/cgi-bin/user/fo_post

            WTF ist da passiert? Ich hab die URLs jedenfalls nicht eingefügt.

            Stur lächeln und winken, Männer!
            Kai

            --
            Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
            in Richtung "Mess up the Web".(suit)
            SelfHTML-Forum-Stylesheet
          2. Vorausgehende[1] Prüfung, ob Zahlenwerte eingegeben wurden setze bei ich dem originalen Problem mit Werten aus Eingabefeldern voraus.

            parseInt, Number und + sind bereits Prüfungen, ob Zahlenwerte eingegeben wurden. Wenn es keine Zahlenwerte sind, geben sie NaN zurück.

            var string1 = document.forms.form1.elements.feld1.value;  
            var string2 = document.forms.form1.elements.feld2.value;  
            var number1 = Number(string1);  
            var number2 = Number(string2);  
            if (isNaN(number1) || isNaN(number2)) {  
               alert('Bitte geben Sie gültige Zahlenwerte ein.');  
               return;  
            }  
            var summe = number1 + number2;  
            alert('Summe: ' + summe);
            

            [1] oder heißt es inzwischen vorrausgehende {SCNR}

            Ich dachte »voraus gehende«? So wie »Fahrrad fahren«. ;)

            Mathias

            1. [latex]Mae  govannen![/latex]

              Vorausgehende[1] Prüfung, ob Zahlenwerte eingegeben wurden setze bei ich dem originalen Problem mit Werten aus Eingabefeldern voraus.

              parseInt, Number und + sind bereits Prüfungen, ob Zahlenwerte eingegeben wurden. Wenn es keine Zahlenwerte sind, geben sie NaN zurück.

              Ja. Und da man mit NaN recht schlecht weiterrechnen kann, muß in jedem Fall eine weitere Prüfung her. Weshalb ich diese _vor_ die Typumwandlung per parseXXX, Numner oder anderer Methodik setzen wollte, weiß ich allerdings nicht :) Ok, es war früh morgens um 14:xx Uhr, das fällt dann noch unter "im Halbschlaf"

              'Vorausgehende[1] Prüfung, ob Zahlenwerte eingegeben wurden'.replace('Vorausgehende', 'Nachfolgende');

              Stur lächeln und winken, Männer!
              Kai

              --
              Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
              in Richtung "Mess up the Web".(suit)
              SelfHTML-Forum-Stylesheet