Programmierer: Formluar überprüfen

ich habe eine form und wenn man sie abschickt soll überprüft werden ob alle felder ausgefüllt sind, wenn nicht soll es mir zu einer variable eins dazuzählen und am schluss dann wenn die variable größer als 1 ist solls das formular hindern weiter zu machen, dazu hab ich das:

function chkFormular()
{
var missedFields;
 if(document.Formular.Name.value == "")  {
   missedFields+=1;
  }
 if(document.Formular.Strasse.value == "") {
   missedFields+=1;
  }
 if (missedFields>=1) {
   return false;
   }
}

aber das geht irgendwie nicht, er macht einfach weiter (also führt action aus)
<form name="Formular" action="senden.asp" method="post" onSubmit="return chkFormular()">

wer kann mir helfen?
mfg

Programmierer

  1. Hallo,

    if (missedFields>=1) {
       return false;

    = ist kein vergleichs operator. nimm >1 oder !=1 (wenns nicht 1 ist). Dann müsste es funktionieren.

    gruß,

    Severin

    1. Hallo Severin,

      if (missedFields>=1) {
         return false;

      = ist kein vergleichs operator.

      Wie kommst Du zu dieser Erkenntnis?

      http://selfhtml.teamone.de/javascript/sprache/operatoren.htm#vergleich

      Christian

      --
      Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
      1. Hallo,

        Wie kommst Du zu dieser Erkenntnis?

        Das frage ich mich auch gerade.Ich weiss, dass ich das normalerweise schon weiss, nur diesmal wusste ich es nicht (oder so in der art ;p) naja, vielleicht täte mir ein bisschen mehr kaffee gut ;)

        errare humanum est....

        Severin

    2. Hallo Severin,

      = ist kein vergleichs operator. nimm >1 oder !=1 (wenns nicht 1 ist). Dann müsste es funktionieren.

      doch, ist es: http://selfhtml.teamone.de/javascript/sprache/operatoren.htm#vergleich

      vielleicht hilft es statt 'var missedFields;' 'var missedFields = 0;' zu schreiben, sonst hat missedFields keinen Inhalt.

      Grüße aus Nürnberg
      Tobias

      1. vielleicht hilft es statt 'var missedFields;' 'var missedFields = 0;' zu schreiben, sonst hat missedFields keinen Inhalt.

        daaaaanke, das funktioniert :-D

        mfg

        Programmierer

    3. dankeschön, aber er arbeitet trotzdem weiter, demnach muss missedFields ja immer noch 0 sein oder irgendwas stimmt noch nicht ?

      function chkFormular()
      {
      var missedFields;
       if(document.Formular.Name.value == "")  {
         missedFields=missedFields+1;
        }
       if(document.Formular.Strasse.value == "") {
         missedFields=missedFields+1;
        }
       if (missedFields>0) {
         return false;
         }
      }

      wenn ich if (missedFields=2) { verwende und es genau 2 felder sind dann geht es. das nur mal so dazugesagt. vielleicht hilft das ?

      mfg

      Programmierer

      1. Hi,

        dankeschön, aber er arbeitet trotzdem weiter, demnach muss missedFields ja immer noch 0 sein oder irgendwas stimmt noch nicht ?

        Wieso immer noch 0 sein? Du setzt missedFields nirgends auf 0.

        function chkFormular()
        {
        var missedFields;

        var missedFields = 0;

        if(document.Formular.Name.value == "")  {
           missedFields=missedFields+1;

        missedFields++;

        }
        if(document.Formular.Strasse.value == "") {
           missedFields=missedFields+1;

        s.o.

        }

        if (missedFields>0) {

        return false;
           }

        Was gibst Du im Ok-Fall zurück?
        Besser: return (missedFields == 0);

        }

        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.
    4. hi,

      = ist kein vergleichs operator.

      doch. Groesser-gleich.

      Gruesse  Joachim

  2. hi,

    function chkFormular()
    {
    var missedFields;
    if(document.Formular.Name.value == "")  {
       missedFields+=1;
      }
    if(document.Formular.Strasse.value == "") {
       missedFields+=1;
      }
    if (missedFields>=1) {
       return false;
       }
    }

    1. Niemals "Name" verwenden, der Begriff ist reserviert.
    2. wo definierst Du einen Wert fuer missedFields, der hochgezaehlt werden soll?

    function chkFormular(){
        var missedFields =  0;
        if(!document.Formular.vName.value)   missedFields += 1;
        if(!document.Formular.Strasse.value) missedFields += 1;
        if (missedFields > 0) return false;
        return true;
     }

    wenn das Formular trotzdem abgesendet wird, hast Du einen anderen Fehler. Dann wird das Script nicht beendet - und die Form versandt. Nutze Mozilla und schaue per "javascrip:" Eingabe /Url-Zeile) in die Konsole.

    Gruesse  Joachim