Kicky: eine Funktion innerhalb einer Funktion aufrufen

Sorry vorab, ist vermutlich eine blöde Frage, aber ich sitze seit Stunden dran und kann es nicht lösen.  In meiner Funktion möchte ich am Ende eine weiter Funktion aufrufen.

function eingabe()
{
for(i=0;i < document.messageList.length; i++)

/*Pflichteingabe name erfolgt?*/
  if (document.messageList.name.value =="Name")
  {
  alert("Bitte tragen Sie ihren Namen ein!");
  document.messageList.name.select();
  document.messageList.name.focus();
  return false;
  }
 return true;
 }

die aufzurufende Funktion ist dann:
function formcheck(f)
{
   var check = f['empfaenger[]'];
   var isChecked = false;
    for(var i = 0;i < check.length; i++)
    {
    if(check[i].checked == true)
    {
         isChecked = true;
         break;
    }
    }
   if(isChecked == false)
          alert("Bitte klicken Sie mindestens einen Empfänger an!");
    return isChecked;
   eingabetest();
}

Bitte, bitte helft mir!!! Vorab schon mal herzlichsten Dank!

  1. Hallo.

    function formcheck(f)
    {
    [...]
        return isChecked;
       eingabetest();
    }

    Das Ausführen von Funktionen wird beendet, sobald ein Wert von ihnen zurückgegeben wird. Alles, was nach dem "return isChecked;" kommt, wird nicht ausgeführt. Du solltest den Aufruf deiner Funktion "eingabetest" also vor die return-Anweisung schreiben.

    Gruß
    Norbert

    1. Herzlichen Dank für den Rat, das hat mcih zwar weiter gebracht, aber ich gestehe, dass ich den Funktionsaufruf "eingabe()" offensichtlich immer noch an der falschen Stelle habe, denn (was ja auch logisch ist) nun erscheinen die Fenster direkt hintereinander ohne dem User die Chance zu geben erst der AUfforderung des ersten Fensters zu folgen. Vielleicht hat ja jemand noch einen Rat wie ich das besser lösen kann. Vielen Dank im Voraus

      Kicky

  2. hallo Kicky,

    Sorry vorab, ist vermutlich eine blöde Frage, aber ich sitze seit Stunden dran und kann es nicht lösen.  In meiner Funktion möchte ich am Ende eine weitere Funktion aufrufen.

    hm, man sagt ja, es gebe keine blöden Fragen, höchstens doofe Antworten (hab ich gelegentlich schon verzapft *g*)

    Wenn ich deinen Beispielcode richtig lese, tust du das ja bereits, und zwar hier:

    eingabetest();

    Du bindest einen Funktionsaufruf ein, indem du einfach ihren Namen innerhalb einer anderen Funktion notierst, fertig. Allerdings ist in dem Code, den du gepostet hast, keine Funktion mit dem Namen "eingabetest" zu finden ...

    Grüße aus Berlin

    Christoph S.

  3. Sorry vorab, ist vermutlich eine blöde Frage, aber ich sitze seit Stunden dran und kann es nicht lösen.  In meiner Funktion möchte ich am Ende eine weiter Funktion aufrufen.

    function eingabe()
    {
    for(i=0;i < document.messageList.length; i++)

    /*Pflichteingabe name erfolgt?*/
      if (document.messageList.name.value =="Name")
      {
      alert("Bitte tragen Sie ihren Namen ein!");
      document.messageList.name.select();
      document.messageList.name.focus();
      return false;
      }
    return true;
    }

    die aufzurufende Funktion ist dann:
    function formcheck(f)
    {
       var check = f['empfaenger[]'];
       var isChecked = false;
        for(var i = 0;i < check.length; i++)
        {
        if(check[i].checked == true)
        {
             isChecked = true;
             break;
        }
        }
       if(isChecked == false)
              alert("Bitte klicken Sie mindestens einen Empfänger an!");
        return isChecked;
       eingabetest();
    }

    Bitte, bitte helft mir!!! Vorab schon mal herzlichsten Dank!

    Gerne.

    Dein Problem ist, das die Funktion von mir nicht beendet wenn ein Fehler auftritt. Also mach es so:

    function formcheck(f)
    {
    var check = f['empfaenger[]'];
    var isChecked = false;
    for(var i = 0;i < check.length; i++)
    {
    if(check[i].checked == true)
    {
    isChecked = true;
    break;
    }
    }
    if(isChecked == false)
    {
    alert("Bitte klicken Sie mindestens einen Empfänger an!");
    return false;
    }
    return eingabetest(f);
    }

    und falls das eingabefeld im gleichen Formular ist kannst du die Variabel f weiterverwenden, da diese bereits auf das Formular zeigt:

    function eingabe(f)
    {

    /*Pflichteingabe name erfolgt?*/
    if (f.Name.value == "Name")
    {
    alert("Bitte tragen Sie ihren Namen ein!");
    f.Name.select();
    f.Name.focus();
    return false;
    }
    return true;
    }

    ACHTUNG!

    du musst das Feld 'name' umbenennen, da das Formular bereist die Eigenschaft name hat und das mit deinem Feld kollidiert. Ich hab es in der Funktion mal in 'Name' umbenannt, besser ist aber was eindeutigeres (vorname oder username)

    Struppi.