Formular lässt sich nicht abschicken

messmar

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgende Schwierigkkeit:

Ich kann nach Überprüfung der Formularfelder, das Forlmular nicht abschicken.
Ich habe einiges probiert z.B.

HTML:
retrun false;
bei nicht erfüllten Bedingungen und den EventHandler:
HTML:
onSubmit()
mit
HTML:
return validateForm();
in dem Formular:

HTML:
<form name="userDetails" action="merci.jsp" method="post" onsubmit="return validateForm();">

aber das alles hat leider nicht geholfen. Hat einer eine Idee, was ich da anspassen/ändern muss, um das Fromular abscheicken zu können... und zur Info dazu, ich erhalte weder über fireFox konsole noch über IE ne Fehlermeldung.

Hierbei ein Teil meines HTML Codes:

HTML:
function validateForm(){
    $("input[name='ZipCode']").each(function(){
        var text = $(this).attr("value");
        if (text == ""){
            $(this).parent().find(".error").css("display", "block");
        }
    });

    $("input[name='pemail']").each(function(){

        var test1 = $(this).attr("value");
        function isValidEmailAddress(test1) {
            var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
            return pattern.test(test1);
        };

        if( !isValidEmailAddress(test1)){
            $(this).parent().find(".error").css("display", "block");
        }
    });
}

Vielen Dank und Gruß
Messmar
 
Zuletzt bearbeitet:
Hi,

es ist erforderlich, für jeden jeweils eingetretenen Fehlerzustand zu ermitteln und zurück zu geben.

Da es sich bei each um eine Iteration über ein Kollektion handelt, muss darin bei einem Fehler zunächst eine Variable gesetzt werden, anhand derer anschliessend ermittelt werden kann, ob ein Fehler aufgetreten ist. Weiterhin muss die Iteration abgebrochen werden (return false).

Versuch mal, die Validierungs-Funktion wie folgt zu modifizieren:
Code:
function validateForm(){
  var blnRet = true;
  $("input[name='ZipCode']").each(function(){
    var text = $(this).attr("value");
    if (text == ""){
      $(this).parent().find(".error").css("display", "block");
      blnRet = false;  // Markieren, dass Fehler aufgetreten ist
      return false;    // Iteration abbrechen
    }
  });
  // Fall innerhalb der Iteration ein Fehler aufgetreten ist -> submit abbrechen
  if(!blnRet) return false;

  $("input[name='pemail']").each(function(){
    var test1 = $(this).attr("value");
    function isValidEmailAddress(test1) {
      var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
      return pattern.test(test1);
    };

    if( !isValidEmailAddress(test1)){
      $(this).parent().find(".error").css("display", "block");
      blnRet = false;
      return false;
    }
  });
  if(!blnRet) return false;

  return blnRet;
}
Ciao
Quaese
 
Hi Quase,

vielen Dank.

Das war's... nur eine Frage habe ich noch und zwar mein Editor: NetBeans zeigt mir die folgende Warnung bezüglich der return:

Anonymus function does not always return a vlaue (Click on "funciton" to see exits)

sagt Dir das was? ich würde gerne wissen, was damit genauer gemeint ist.

Grüß
Messmar
 
Hi,

möglich, dass die Warnung erscheint, da die anonymen Funktionen innerhalb der each-Methode nur für den if-Zweig ein return enthalten.

Versuch einfach mal, am Ende der Funktionen true zurück zu geben:
Code:
  $("input[name='ZipCode']").each(function(){
      var text = $(this).attr("value");
      if (text == ""){
          $(this).parent().find(".error").css("display", "block");
          blnRet = false;
          return false;
      }
      return true;
  });
Ciao
Quaese
 
Hi Quase,

sorry für das verspätete Feedback ;-)

Vielen Danke für die genauer Erkälrung... das hat geklappt und habe wieder was gelernt.

Viele Grüße
Messmar
 

Neue Beiträge

Zurück