Mssmar: function checkForm does not always return a value

Hallo,

bei der filgenden Funktino erhalte ich über FFOX die folgende Warnung:
"function checkForm does not always return a value"

Das ist zwar kein Fahler, aber es wäre gut wenn man eine Idee hätte, wie ich es unterdrücken bzw. vermeiden könnte.

Würde das mit einer Catch/Try gehen.

Vielen Dank und Gruß
Messmar

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
<head>  
 <title>Untitled</title>  
</head>  
  
<body>  
  
 <script>  
  statments = '{'+  
    'var oTextNode = document.createTextNode(text);'+  
    'document.getElementById("errorTxt").replaceChild(oTextNode, document.getElementById("errorTxt").firstChild);'+  
    'document.getElementById("errorTxt").className = "errorVisible";'+  
    'return false;'+  
    '}';  
  errorMessage = new Function('text', statments);  
  
  function checkForm(){  
   var manFrau = document.abo.tlt.options[document.abo.tlt.selectedIndex].value;  
   var firstName = document.abo.fnm.value;  
   var lastName = document.abo.lnm.value;  
   var email = document.abo.uemail.value;  
  
   if (!manFrau){  
    errorMessage("Bitte geben Sie Ihren Title an!");  
    return false;  
   }  
   if (!firstName){  
    errorMessage("Bitte geben Sie Ihren Vornamen an!");  
    return false;  
   }  
   if (!lastName){  
    errorMessage("Bitte geben Sie Ihren Nachnamen an!");  
    return false;  
   }  
   if (!email || email.indexOf('@') == -1){  
    errorMessage("Bitte geben Sie Ihre richtige eMail-Adresse an!");  
    return false;  
   }  
   window.location.href='welcome.jsp';  
  }  
 </script>  
  
 <form name="abo" method="post" action="email_do.jsp" onsubmit="return checkForm()">  
  <input type="hidden" name="uuu" value="iii" />  
  <h2>  
   Bitte kontaktieren Sie uns &uuml;ber unser Formular mit Fragen und Anregungen rund um unseren Service auf  
   <a href="#">Link</a>  
  </h2>  
  <fieldset id="daten">  
   <label>Ihr Titel:</label>  
   <select style="width:207px;" name="tlt">  
    <option value="">&nbsp;</option>  
    <option value="1">Herr</option>  
    <option value="2">Frau</option>  
   </select>  
   <br />  
   <label>Ihr Vorname:</label><input type="text" name="fnm" value="" />  
   <label>Ihr Nachname:</label><input type="text" name="lnm" value="" />  
   <label>Ihre eMail Adresse:</label><input type="text" name="uemail" value="" />  
   <label for="hinweis">  
  
    <strong>Hinweis:</strong><br>  
    Proin sed velit eget nunc consectetuer tristique. Donec nunc mi, euismod quis,  
    condimentum non, egestas a, felis. Nulla enim dui, commodo sit amet, iaculis a,  
    placerat sit amet, diam.  
  
   </label>  
   <br />  
  </fieldset>  
  <fieldset id="nachricht">  
   <label for="betreff"><strong>Betreff:</strong></label><br />  
   <input type="text" id="betreff" name="betreff" value="Ihre Anfrage" style="margin-bottom:15px;" />  
  
   <label for="nachricht"><strong>Nachricht:</strong></label><br />  
   <textarea name="comment" id="nachricht" rows="10">Hallo, gerade war ich auf xxxxx und dachte mir, dass die Seite auch für Dich interessant sein könnte. Du kannst dort angeben welches Auto Du planst zu kaufen und auch gleichzeitig einen Termin zur Probefahrt beantragen. Einfach hier klicken xxxx Viele Gr&uuml;&szlig;e!</textarea>  
   <br />  
   <input type="submit" name="submit" class="submitbtn" value="Eintrag absenden" />  
   <input type="reset" name="reset" class="submitbtn" value="Eintrag löschen" style="margin-left:20px;" />  
  </fieldset>  
  <div class="clear"></div>  
 </form>  
  
  
</body>  
</html>  
  
  

  1. Hi,

    bei der filgenden Funktino erhalte ich über FFOX die folgende Warnung:
    "function checkForm does not always return a value"

    Das ist zwar kein Fahler, aber es wäre gut wenn man eine Idee hätte, wie ich es unterdrücken bzw. vermeiden könnte.

    Schreibe in die letzte Zeile der Funktion 'return true;'. Im Fehlerfall gibst du false zurück, aber wenn kein Fehler auftritt solltest du true zurückgeben, weil du ja den Returncode auswertest.

    mfG,
    steckl

  2. hi,

    bei der filgenden Funktino erhalte ich über FFOX die folgende Warnung:
    "function checkForm does not always return a value"

    Das ist zwar kein Fahler, aber es wäre gut wenn man eine Idee hätte, wie ich es unterdrücken bzw. vermeiden könnte.

    Well, just always _do_ return a value.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. bei der filgenden Funktino erhalte ich über FFOX die folgende Warnung:
    "function checkForm does not always return a value"

    Auf deutsch: Funktion checkForm tut nicht immer einen Wert zurückgeben.

    <script>

    das Type Attribut hast du nur gelöscht um uns zu ärgern ;-)

    statments = '{'+
        'var oTextNode = document.createTextNode(text);'+
        'document.getElementById("errorTxt").replaceChild(oTextNode, document.getElementById("errorTxt").firstChild);'+
        'document.getElementById("errorTxt").className = "errorVisible";'+
        'return false;'+
        '}';
      errorMessage = new Function('text', statments);

    Nicht schlecht, aber warum du nicht eine normale Funktion nimmst, ist mir Rätselhaft.

    function errorMessage (text)
    {
         var oTextNode = document.createTextNode(text);
         document.getElementById("errorTxt").replaceChild(oTextNode, document.getElementById("errorTxt").firstChild);
         document.getElementById("errorTxt").className = "errorVisible";
    }

    function checkForm(){
       var manFrau = document.abo.tlt.options[document.abo.tlt.selectedIndex].value;
       var firstName = document.abo.fnm.value;
       var lastName = document.abo.lnm.value;
       var email = document.abo.uemail.value;

    Das es ein leichtes ist, das Formular als Referenz zu übergeben und damit eine Menge Tipparbeit zu sparen solltest du auch schon mal gehört haben:

    <form method="post" action="email_do.jsp" onsubmit="return checkForm(this)">

    function checkForm(form){
    var manFrau = form.tlt.options[form.tlt.selectedIndex].value;
    var firstName = form.fnm.value;
    var lastName = form.lnm.value;
    var email = form.uemail.value;

    window.location.href='welcome.jsp';

    auch wenn es keinen Sinn macht sollte dann hier ein return true erfolgen, aber das Formular wird nicht mehr abgeschickt (manchmal schon), da du die Seite ja schon erneuert hast.

    Ich weiß du bist relativ Beratungsresitent, ich hab das nur geschrieben, damit dass so nicht im Archiv landet.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Hi Struppi,

      [...]

      Das es ein leichtes ist, das Formular als Referenz zu übergeben und damit eine Menge Tipparbeit zu sparen solltest du auch schon mal gehört haben:

      [...]

      Ja, du irrst dich nicht.

      Ich habe das sogar bei anderen Formularen verwendet und es hat funkt. Es ist sogar eleganter und besser. Aber bei diesem Formular hier hatte ich es versucht, und bekam ich ständig die folgende Fehlermeldung:

      "document.formObj has no properties"

      Dann habe ich mich entschloßen es schon Mal so einfach zu realisieren.

      Und So sieht der Code, den ich vorher versucht habe:

        
      function checkForm(formObj){  
       var manFrau = document.formObj.tlt.options[document.formObj.tlt.selectedIndex].value;  
       var firstName = document.formObj.fnm.value;  
       var lastName = document.formObj.lnm.value;  
       var email = document.formObj.uemail.value;  
        
       if (!manFrau){  
        errorMessage("Bitte geben Sie Ihren Title an!");  
        return false;  
       }  
       if (!firstName){  
        errorMessage("Bitte geben Sie Ihren Vornamen an!");  
        return false;  
       }  
       if (!lastName){  
        errorMessage("Bitte geben Sie Ihren Nachnamen an!");  
        return false;  
       }  
       if (!email || email.indexOf('@') == -1){  
        errorMessage("Bitte geben Sie Ihre richtige eMail-Adresse an!");  
        return false;  
       }  
       window.location.href='welcome.jsp';  
       return true;  
      }  
      
      

      Wenn Du mir sagen könntest, wo hier der Felher legt?

      Ich weiß du bist relativ Beratungsresitent, ich hab das nur geschrieben, [...]

      Das mag sein ;-) und ich bin trotzdem Dankbar für alle Tipps...

      Danke und Gruß
      Amin

      1. hi,

        Ich habe das sogar bei anderen Formularen verwendet und es hat funkt. Es ist sogar eleganter und besser. Aber bei diesem Formular hier hatte ich es versucht, und bekam ich ständig die folgende Fehlermeldung:

        "document.formObj has no properties"

        function checkForm(formObj){
        var manFrau = document.formObj.tlt.options[document.formObj.tlt.selectedIndex].value;

        Wenn du formObj an die Funktion übergibst, dann arbeitest du innerhalb der Funktion natürlich auch mit formObj, und nicht mit document.formObj

        var manFrau = formObj. ...

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hi Wahsaga,

          [...]

          Wenn du formObj an die Funktion übergibst, dann arbeitest du innerhalb der Funktion natürlich auch mit formObj, und nicht mit document.formObj

          [...]

          Ja das ist das was mir fehlte. Danke dir für den Hinweis und den Tipp.

          Das wusste ich natürlich nicht und dachte, dass es mit:

          "document.etc"

          innerhalb der Funktion auch funktionieren würde.

          Gruß
          Messmar

      2. Ich weiß du bist relativ Beratungsresitent, ich hab das nur geschrieben, [...]

        Das mag sein ;-) und ich bin trotzdem Dankbar für alle Tipps...

        Jaja, man soll die Hoffnung nie aufgeben, deine Skripte lassen sich aber auch immer so schön zerpflücken ;-)

        Die Antwort hast du ja schon bekommen.

        Struppi.

        --
        Javascript ist toll (Perl auch!)