Sensei: Fehlermeldung; noch 3 Fragen...!

Hey!

Hab ein Skript geschrieben (hab im beispiel unten das drumrum mit doctype usw. weggelassen...), bekomm aber immer eine Fehlermeldung beim ausführen ("Fehler in Zeile 8, es wird ein ";" erwartet")

--------------------------------
<html>
<head>
<script>
function checkprice()
{
var name=document.form1.nachname.value, strasse=document.form1.strasse.value, plz-ort=document.form1.plz-ort.value;
var cnachname="",cstrasse="",cplz-ort="";
int preis=0;

if (nachname=="")
var cnachname="Bitte geben Sie Ihren Namen an!\n";
if (strasse=="")
var cstrasse="Bitte geben Sie Ihre Adresse an!\n";
if (plz-ort=="")
var cplz-ort="Bitte geben Sie Ort und Postleitzahl Ihres Wohnsitzes an!\n";

if(document.form1.buch[0].checked == true)
  preis = preis + 25;
 else if(document.form1.buch[1].checked == true)
  preis = preis + 25;
 else
  alert("Bitte zumindest ein Buch auswaehlen!");

if (cnachname!="" || cstrasse!="" || cplz-ort!="")
{
alert(cnachname+cstrasse+cplz-ort)
return false;
}
else
return true;
}
</script>
-------------------------------

  1. weiß wer, was die fehlermeldung auslöst - ich find nix!
  2. funktioniert das so, dass wenn jetzt keine der Checkboxen buch[0] oder buch[1] gecheckt sind, dass dann "Bitte zumindest ein Buch auswaehlen" kommt (bin mir nicht ganz sicher, ob das so richtig is)?
  3. Rechnen in JavaScript: wie ihr seht, hab ich definiert:
    int preis=0;
    geht das so in JavaScript? Kann ich damit dann so rechnen wie weiter unten: preis = preis + 25; usw?!?
  4. wie häng ich den Integer-Wert preis mit Strings Zusammen (es soll ja dann stehen "Das kostet 25 Euro". Funktioniert das so wie in Java, indem ich strings zusammenhänge: "Das kostet" + preis + "Euro" ?

Danke für eure Hilfe,

Sensei

  1. Hey!

    Hab ein Skript geschrieben (hab im beispiel unten das drumrum mit doctype usw. weggelassen...), bekomm aber immer eine Fehlermeldung beim ausführen ("Fehler in Zeile 8, es wird ein ";" erwartet")

    SKRIPT NOCHMAL GEÄNDERT:


    <html>
    <head>
    <script>
    function checkprice()
    {
    var name=document.form1.nachname.value, strasse=document.form1.strasse.value, plzort=document.form1.plzort.value;
    var cnachname="",cstrasse="",cplzort="",keinbuch="";
    int preis=0;

    if (nachname=="")
    var cnachname="Bitte geben Sie Ihren Namen an!\n";
    if (strasse=="")
    var cstrasse="Bitte geben Sie Ihre Adresse an!\n";
    if (plzort=="")
    var cplzort="Bitte geben Sie Ort und Postleitzahl Ihres Wohnsitzes an!\n";

    if(document.form1.buch[0].checked == true)
      preis = preis + 25;
     else if(document.form1.buch[1].checked == true)
      preis = preis + 25;
     else if(document.form1.buch[2].checked == true)
      preis = preis + 25;
     else if(document.form1.buch[3].checked == true)
      preis = preis + 25;
     else if(document.form1.buch[4].checked == true)
      preis = preis + 40;
     else if(document.form1.buch[5].checked == true)
      preis = preis + 32;
     else
      var keinbuch="Bitte zumindest ein Buch auswaehlen!";

    if (cnachname!="" || cstrasse!="" || cplzort!="" || keinbuch!="")
    {
    alert(cnachname+cstrasse+cplzort+keinbuch)
    return false;
    }
    else
    return true;
    }
    </script>


    1. weiß wer, was die fehlermeldung auslöst - ich find nix!
    2. funktioniert das so, dass wenn jetzt keine der Checkboxen buch[0] oder buch[1] gecheckt sind, dass dann "Bitte zumindest ein Buch auswaehlen" kommt (bin mir nicht ganz sicher, ob das so richtig is)?
    3. Rechnen in JavaScript: wie ihr seht, hab ich definiert:
      int preis=0;
      geht das so in JavaScript? Kann ich damit dann so rechnen wie weiter unten: preis = preis + 25; usw?!?
    4. wie häng ich den Integer-Wert preis mit Strings Zusammen (es soll ja dann stehen "Das kostet 25 Euro". Funktioniert das so wie in Java, indem ich strings zusammenhänge: "Das kostet" + preis + "Euro" ?

    Danke für eure Hilfe,

    Sensei

    1. Hi,

      int preis=0;

      Javascript ist nicht Java...
      Javascript kennt keine Datentypen...
      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
  2. Hallo Sensei,

    zudem hast Du Variablennamen mit Minuszeichen, das geht natürlich nicht, wie sollte man sonst unterscheiden zwischen if(a-b == 5); und if(a - b == 5) z.B.

    Hier das Script ohne Fehlermeldung...

    <script>
    function checkprice()
    {
    var name=document.form1.nachname.value, strasse=document.form1.strasse.value, plz_ort=document.form1.plz_ort.value;
    var cnachname="",cstrasse="",cplz_ort="";
    var preis=0;

    if (nachname=="")
    var cnachname="Bitte geben Sie Ihren Namen an!\n";
    if (strasse=="")
    var cstrasse="Bitte geben Sie Ihre Adresse an!\n";
    if (plz_ort=="")
    var cplz_ort="Bitte geben Sie Ort und Postleitzahl Ihres Wohnsitzes an!\n";

    if(document.form1.buch[0].checked == true)
      preis = preis + 25;
     else if(document.form1.buch[1].checked == true)
      preis = preis + 25;
     else
      alert("Bitte zumindest ein Buch auswaehlen!");

    if (cnachname!="" || cstrasse!="" || cplz_ort!="")
    {
    alert(cnachname+cstrasse+cplz_ort)
    return false;
    }
    else
    return true;
    }
    </script>

    toby

    --
    "Trying is the first step toward failure." - H. Simpson
  3. Hey!

    Hab ein Skript geschrieben (hab im beispiel unten das drumrum mit doctype usw. weggelassen...), bekomm aber immer eine Fehlermeldung beim ausführen ("Fehler in Zeile 8, es wird ein ";" erwartet")


    <html>
    <head>
    <script>
    function checkprice()

    Du kannst es dir einfacher und das skript flexibler machen, wenn du das Formular mitübergibst.

    <form action=".." onsubmit="return checkprice(this);">

    und dann:
    function checkprice(f)

    {
    var name=document.form1.nachname.value, strasse=document.form1.strasse.value, plz-ort=document.form1.plz-ort.value;

    Dadurch sparst du dir diese Würmer.
    var name = f.nachname.value;
    var strasse = f.strasse.value;
    var plzort = f['plz-ort'].value;

    var cnachname="",cstrasse="",cplz-ort="";

    Das brauchst du nicht!
    Nimme eine Variabel mit dem Namen 'fehler', das reicht für deine Zwecke.

    var fehler = "";

    int preis=0;

    Fehler!

    if (nachname=="")
    var cnachname="Bitte geben Sie Ihren Namen an!\n";

    if(!nachname) fehler += "Bitte geben Sie Ihren Namen an!\n";

    if (strasse=="")
    var cstrasse="Bitte geben Sie Ihre Adresse an!\n";

    if(!strasse) fehler += "Bitte geben Sie Ihre Adresse an!\n";

    if (plz-ort=="")
    var cplz-ort="Bitte geben Sie Ort und Postleitzahl Ihres Wohnsitzes an!\n";

    if(!plzort) fehler += "Bitte geben Sie Ort und Postleitzahl Ihres Wohnsitzes an!\n";

    if(document.form1.buch[0].checked == true)
      preis = preis + 25;
     else if(document.form1.buch[1].checked == true)
      preis = preis + 25;
     else
      alert("Bitte zumindest ein Buch auswaehlen!");

    if(f.buch[0]) preis += 25;
    else if(f.buch[1]) preis += 25;
    else fehler += "Bitte zumindest ein Buch auswaehlen!");

    if (cnachname!="" || cstrasse!="" || cplz-ort!="")
    {
    alert(cnachname+cstrasse+cplz-ort)
    return false;
    }
    else
    return true;
    }

    if(fehler) { alert(fehler); return false; }

    return true;

    </script>

    1. weiß wer, was die fehlermeldung auslöst - ich find nix!

    Dein flaschen Namen (Minuszeichen)

    1. funktioniert das so, dass wenn jetzt keine der Checkboxen buch[0] oder buch[1] gecheckt sind, dass dann "Bitte zumindest ein Buch auswaehlen" kommt (bin mir nicht ganz sicher, ob das so richtig is)?

    Sollte, ja.

    1. Rechnen in JavaScript: wie ihr seht, hab ich definiert:
      int preis=0;
      geht das so in JavaScript? Kann ich damit dann so rechnen wie weiter unten: preis = preis + 25; usw?!?

    'int' gibz nicht. und genau wie in Java kannst du die Kurzform verwenden:
    preis += 25;

    1. wie häng ich den Integer-Wert preis mit Strings Zusammen (es soll ja dann stehen "Das kostet 25 Euro". Funktioniert das so wie in Java, indem ich strings zusammenhänge: "Das kostet" + preis + "Euro" ?

    Ja, genauso.

    Struppi.

    1. wow!
      danke für die ausführlichen und lehrreichen Antworten!

      Zwei kleine Fragen hab ich noch:

      if(document.form1.buch[0].checked == true)
        preis += 25;
       else if(document.form1.buch[1].checked == true)
        preis += 25;
       else if(document.form1.buch[2].checked == true)
        preis += 25;
       else if(document.form1.buch[3].checked == true)
        preis += 25;
       else if(document.form1.buch[4].checked == true)
        preis += 40;
       else if(document.form1.buch[5].checked == true)
        preis += 32;

      --> er gibt immer als preis 25 aus - warum?!? sollte sich doch zusammenaddieren, wenn mehrere checkboxen gecheckt sind?

      else
      window.confirm("Ihre Bestellung kostet " + preis + " Euro!")
      return true;

      ich öffne ´confirm-window, aber auch wenn man dort abbrechen drückt, wird versandt fortgesetzt. klar --> wegen return true gleich danach. Was für eien Möglichkeit gibt es, den versandt des formulars bei "abbrechen" auch wirklich abzubrechen?

      thx!

      1. Hi,

        if(document.form1.buch[0].checked == true)
          preis += 25;
        else if(document.form1.buch[1].checked == true)
          preis += 25;
        --> er gibt immer als preis 25 aus - warum?!? sollte sich doch zusammenaddieren, wenn mehrere checkboxen gecheckt sind?

        Wie soll sich da was aufaddieren?
        Da die buch[1] nur erreicht wird, wenn buch[0] false ist usw., kann da nichts addiert werden.
        Schmeiß die "else" vor den if weg...

        window.confirm("Ihre Bestellung kostet " + preis + " Euro!")
        return true;
        ich öffne ´confirm-window, aber auch wenn man dort abbrechen drückt, wird versandt fortgesetzt. klar --> wegen return true gleich danach. Was für eien Möglichkeit gibt es, den versandt des formulars bei "abbrechen" auch wirklich abzubrechen?

        Du mußt das Ergebnis des confirm (nämlich true bei Ja/Ok und false bei nein/Abbrechen) zurückgeben.

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.