Timo: Funktion erweitern, aber an welcher Stelle genau?

Hallo,

ich nutze einen Javascript- Formularvalidator. Den möchte ich, nachdem er das Formular auf Validität geprüft hat und bevor es dann zum Server abgeschickt wird, noch 2-3 Zeilen eigenen Javascript-Code mitgeben.

Ich bin aber nicht sicher, an welcher Stelle ich das tun kann oder muß.

Über onsubmit rufe ich die Funktion validateStandard auf. Das Javascript fängt wie folgt an:

function validateStandard (objForm, strErrorClass) {
    return _validateInternal(objForm, strErrorClass, 1);
};

/***************************************************************
** Internal functions
*****************************************************************/
function _validateInternal(form, strErrorClass, nErrorThrowType){
   var strErrorMessage = ""; var objFirstError = null;
   if (nErrorThrowType == 0){
    strErrorMessage = (form.err) ? form.err : _getLanguageText("err_form");
   };

var fields = _GenerateFormFields(form);
   for (var i = 0; i < fields.length; ++i){
  ...usw.

Frage: Wo setze ich meine eigenen Zeilen ein?

Timo

  1. Hi there,

    Frage: Wo setze ich meine eigenen Zeilen ein?

    Das hängt davon ab, was Du vorhast, oder möchtest Du aus Jux und Tollerei einfach ein paar Zeilen eigenen Code einfügen?
    Wenn Du das Ergebnis der Validierung noch von weiteren Bedingungn abhängig machst, dann musst Du einfach das Ergebnis der Validierung mit dem Ergebnis Deiner Überprüfung logisch verknüpfen und zurückgeben. Deine eigene Überprüfung kannst Du durchaus in einer eigenen Funktion machen. Also so in etwa

      
      
    return ergebnis_der_validierung && eigene_function();  
      
    
    
    1. Hi,

      Das hängt davon ab, was Du vorhast, oder möchtest Du aus Jux und Tollerei einfach ein paar Zeilen eigenen Code einfügen?

      Nein, die Valedierung ist danach abgeschlossen. Meine Codezeilen geben lediglich ein Bestätigungsdiv aus. Nur es soll halt nicht erscheinen, wenn die Valedierung nicht in Ordnung war.

      War sie in Ordnung, dann kommt mein Code zum Zuge und das Formular soll zum Server raus.

      Gruß, Timo

      1. Hi there,

        Nein, die Valedierung ist danach abgeschlossen. Meine Codezeilen geben lediglich ein Bestätigungsdiv aus. Nur es soll halt nicht erscheinen, wenn die Valedierung nicht in Ordnung war.

        War sie in Ordnung, dann kommt mein Code zum Zuge und das Formular soll zum Server raus.

        Naja, dann setz' Deinen Code halt vor die Zeile, die das Ergebnis der Validierung zurückgibt.

          
          
        validierungscode...  
        validierungscode...  
        validierungscode...  
        validierungscode...  
          
          
        if (validierung_ok)  
        {  
        dein_code...  
          
        }  
          
        return validierung_ok // diese Zeile musst Du halt suchen...  
          
        
        
        1. return validierung_ok // diese Zeile musst Du halt suchen...

          [/code]

          Tja, wenns mal so einfach wäre.

          Aber die Funktion wird als 1-Zeiler aufgerufen:

          function validateStandard (objForm, strErrorClass) {
              return _validateInternal(objForm, strErrorClass, 1);
          };

          Das wars.

          Siehe: Script Quellcode

          Gruß, Timo

          1. Hi,

            Tja, wenns mal so einfach wäre.

            Aber die Funktion wird als 1-Zeiler aufgerufen:

            function validateStandard (objForm, strErrorClass) {
                return _validateInternal(objForm, strErrorClass, 1);
            };

            Das wars.

            Und was macht diese Funktion ...?

            Ihrerseits wiederum eine Funktion aufrufen, und deren Rückgabewert durchreichen.

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. Ihrerseits wiederum eine Funktion aufrufen, und deren Rückgabewert durchreichen.

              Hi, guter Hinweis.
              So brauchte ich wirklich nur die Stelle in der wiederum aufgerufenen Funktion zu finden, in der ein "return true" steht und meinen Code genau davor zu platzieren :-)

              Gruß, Timo

          2. Hi,

            Aber die Funktion wird als 1-Zeiler aufgerufen:

            function validateStandard (objForm, strErrorClass) {
                return _validateInternal(objForm, strErrorClass, 1);
            };

            und warum kannst du diese Funktion nicht ändern?

            ~dave

  2. Moin,

    Hallo,

    ich nutze einen Javascript- Formularvalidator. Den möchte ich, nachdem er das Formular auf Validität geprüft hat und bevor es dann zum Server abgeschickt wird, noch 2-3 Zeilen eigenen Javascript-Code mitgeben.

    Frage: Wo setze ich meine eigenen Zeilen ein?

    Setze onsubmit auf deine eigene Funktion und rufe in dieser entweder _vor_ deinen "Zeilen" die Funktion validateStandard auf oder eben _danach_, je nach dem, wann validiert werden soll, bevor deine Zeilen ausgeführt werden, oder danach.

    Timo

    Gruß,
    Take

    1. Setze onsubmit auf deine eigene Funktion und rufe in dieser entweder _vor_ deinen "Zeilen" die Funktion validateStandard auf oder eben _danach_, je nach dem, wann validiert werden soll, bevor deine Zeilen ausgeführt werden, oder danach.

      Ja, so würde es auch gehen.
      Wäre ewtas mnehr Arbeit, weil ich ja jedes "onsubmit" ändern müsste.

      Aber falls ich die richtigbe Stelle zum Einsatz meines Codes nicht finde, werde ich das wohl so machen.

      Gruß, Timo