Haiko: Funktion mit String parameter

Hallo,

eine Frage für Anfänger.
Wieso geht das hier nicht.
Damit will ich eine Image die auf einem Klick "Hello Word" zeigt.

[code lang:HTML]
<script language="JavaScript">

function fnAddAttendees(termKey){
     window.alert("Hello World");
}
</script>

<td><p><img src="../img/iconApprove.gif" type="submit" name="change"  onclick="fnAddAttendees(aa)"  /></p>
[/code]

  1. Wieso geht das hier nicht.

    Weil Javascript nicht gehen kann, Javascript läuft nur.

    function fnAddAttendees(termKey){
         window.alert("Hello World");
    }

    <td><p><img src="../img/iconApprove.gif" type="submit" name="change"  onclick="fnAddAttendees(aa)"  /></p>

    Möglicherweise fütterst du die Funktion mit unbekannten Fäkalien.

    Dein Browser hat, sofern es ein halbwegs vernünftiger Browser ist, einen Platz, an dem er Fehler meldet, beim Firefox zum Beispiel im Menü Extras unter Fehlerkonsole. Schau da rein.

    Das Attribut type="submit" kommt mir auch reichlich eigenartig vor, aber das dürfte nicht das akute Problem sein.

  2. Lieber Haiko,

    Wieso geht das hier nicht.
    Damit will ich eine Image die auf einem Klick "Hello Word" zeigt.

    Du hast einen Eventhandler "onclick" notiert. In diesem steht ein Funktionsaufruf "fnAddAttendees(aa)". Das bedeutet, dass die Funktion mit dem Namen "fnAddAttendees" aufgerufen und ihr der Wert der Variablen "aa" übergeben werden soll. Nun steht aber nirgendwo in Deinem Code ein Hinweis auf das Vorhandensein dieser Variablen "aa".

    Schau doch bitte in Zukunft immer erst in die Fehlerkonsole Deines Browsers (da musst Du jetzt vielleicht etwas suchen, aber diese Informationsquelle ist unerlässlich!), um wertvolle Hinweise zu finden, warum Du gerade mit JavaScript nicht weiterkommst!

    <script language="JavaScript">

    Da notierst Du bitte ab sofort immer <script type="text/javascript">!

    function fnAddAttendees(termKey){
         window.alert("Hello World");
    }

    Diese Funktion erwartet einen übergebenen Wert, den sie intern in der Variablen "termKey" abspeichert. Im weiteren Verlauf benutzt sie diesen Wert jedoch nicht. Für Dein "Hello World" brauchst Du keinen Parameter...

    [...] onclick="fnAddAttendees(aa)"  /></p>

    Notiere hier anstatt der nicht vorhandenen Variablen besser einen direkten Wert, beispielsweise eine Zahl oder eine Zeichenkette in (einfachen!) Anführungszeichen:

    <img ... onclick="fnAddAttendees('Hello everybody!')" />
    oder so
    <img ... onclick="fnAddAttendees(42)" />

    Später kannst Du Deine Funktion ja so gestalten, dass sie mit diesem übergebenen Wert etwas macht...

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Lieber Felix,

      <img ... onclick="fnAddAttendees(42)" />

      Das wird so gehen.
      Ich brauche aber ein Parameter für meine Funktion der String ist.
      Das wird so aussehen.

        
      function fnAddAttendees(termKey){  
      ..  
      ..=document.standardTermFormExt.termKey.value;  
      window.close();  
      }  
      
      
        
      <p><img src="../img/iconApprove.gif" name="standardSaveTermFormExt"  onclick="javascript:fnAddAttendees(aa)" /></p></td>  
        
      
      

      Danke für den Tipp.

      Haythem

      1. Hi,

        dann stelle dir mal die Frage, ob aa wirklich ein String ist ...
        Zur Not kannst du das auch mit alert(typeof(aa)) herausfinden.

        Der Yeti

        1. Zeigt mir undefined.
          Wie kann ich in der Funktion ein String gewinnen?

          Hi,

          dann stelle dir mal die Frage, ob aa wirklich ein String ist ...
          Zur Not kannst du das auch mit alert(typeof(aa)) herausfinden.

          Der Yeti

          1. @@Haiko:

            Zeigt mir undefined.

            Na sowas.

            Wie kann ich in der Funktion ein String gewinnen?

            Ich verstehe zwar deine Frage nicht ganz, aber glaube, sie eben beantwortet zu haben.

            Live long and prosper,
            Gunnar

            PS: Bitte kein TOFU!

            --
            “New Jersey Hall of Fame? […] But then I ran through the list of names: Albert Einstein, Bruce Springsteen... my mother's going to like that. […] it's the only time she's going to hear those two names mentioned in the same sentence, so I'm going to enjoy it.” (Bruce Springsteen when inducted into the New Jersey Hall of Fame, 2008-05-04)
          2. Hi,

            Zeigt mir undefined.

            Richtig. Was sagt uns das?

            Wie kann ich in der Funktion ein String gewinnen?

            Indem du einen String übergibst.
            Vergleiche alert(typeof(aa)) mit alert(typeof('aa'))...

            Der Yeti

            1. function fnAddAttendees(termKey){
                  alert(termKey); // zeigt aa gut
                  alert(document.standardTermFormExt.termKey); // zeigt undefined
                  alert(document.standardTermFormExt.termKey.value); // Fehler
              }
              das letzte ist passend zu Punkt 4 hier, oder nicht?

              hier

              1. das letzte ist passend zu Punkt 4 hier, oder nicht?

                Du meinst Schema 4?

                hier

                Nein.

                Struppi.

              2. Lieber Haiko,

                jetzt muss ich ehrlich einmal fragen: Was von den in diesem Thread geposteten Antworten hast Du bisher verstanden? Die von Dir zuletzt gepostete Frage erzeugt bei mir eine ununterdrückbare Skepsis...

                Liebe Grüße aus Ellwangen,

                Felix Riesterer.

                --
                ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      2. @@Haiko:

        Ich brauche aber ein Parameter für meine Funktion der String ist.

        Dann willst du die Funktion auch mit einem String als Parameter aufrufen: aa ist keiner; 'aa' ist einer.

        <img src="../img/iconApprove.gif" name="standardSaveTermFormExt" onclick="javascript:fnAddAttendees(aa)" />

        Der Sinn von 'javascript:' wäre welcher?

        Außerdem fehlt das zwingend notwendige 'alt'-Attribut.

        Live long and prosper,
        Gunnar

        --
        “New Jersey Hall of Fame? […] But then I ran through the list of names: Albert Einstein, Bruce Springsteen... my mother's going to like that. […] it's the only time she's going to hear those two names mentioned in the same sentence, so I'm going to enjoy it.” (Bruce Springsteen when inducted into the New Jersey Hall of Fame, 2008-05-04)
      3. Das wird so aussehen.

        function fnAddAttendees(termKey){
        ..
        ..=document.standardTermFormExt.termKey.value;
        }

          
        Das geht so nicht. Dazu musst du den Index-Operator verwenden, wie [hier](http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines) nach dem Schema 4  
          
        Struppi.
        
  3. Hi,

    ist aa eine globale Variable? Bei mir ist die nämlich nicht definiert (in deinem Codeschnipsel) und daher kann die Funktion nicht aufgerufen werden.
    Wie von Engelein schon erwähnt, kann man mit einem ordentlichen Browser auch gut debuggen.

    Der Yeti