Markus S.: Korrekt maskieren?

Moin!

Ich habe eine Javascript-Funkion, der ich einen String übergebe, aber irgendwie klappt das nicht.

function machWas(f){
         window.setTimeout("'f'"+style.backgroundColor = 'red';",500);
}

Aufruf der Funktion:

if....machWas('MeinForm.MeinFeld1');

Ich bekomme das 'MeinForm.MeinFeld1' nicht korrekt in meinen window.setTimeoput rein. Könnte ihr mir helfen?

Markus

  1. Hallo,

    function machWas(f){
             window.setTimeout("'f'"+style.backgroundColor = 'red';",500);
    }

    Lasse dir doch mal mit alert(f) ausgeben, was hier in f steht.
    Ausserdem sieht die Stringverkettung ziemlich komisch aus. Das mit den Anfuehrungszeichen stimmt so wohl nicht.
    Ich glaube du muesstest dann f.style.backgroundColor='red' schreiben, bin mir aber nicht ganz sicher wie die genaue syntax hier sein muss.
    Ein Blick in die Javascript-Konsole deines Browsers zeigt dir Syntaxfehler an.

    Aufruf der Funktion:

    if....machWas('MeinForm.MeinFeld1');

    Du uebergibst hier einen String in dem MeinForm.MeinFeld1 steht.
    Wahrscheinlich willst du aber das Objekt MeinForm.MeinFeld1 uebergeben. Dazu musst du die Anfuehrungszeichen weglassen.

    mfG,
    steckl

    1. Hallo steckl,

      mein alert gibt MeinForm.MeinFeld1 aus. OK.

      Wenn ich
      window.setTimeout("MeinForm.MeinFeld1.style.backgroundColor = 'red';",500);
      direkt aufrufe, klappt es auch. Es muss also irgendwas mit den Anführungszeichen zu tun haben...

  2. hi,

    if....machWas('MeinForm.MeinFeld1');

    probier mal:

      
    machWas(MeinForm.MeinFeld1.value);  
      
    oder  
      
    machWas(this.document.MeinForm.MeinFeld1.value);  
    
    

    wenn du nicht das value übergibst musst du oben in der funktion auf das value zugreifen. Also,
    ...  f.value  ...

    Gruss,
    Seppel

    1. sorry...hatte ich falsch gelesen, dachte du wolltest nen wert übergeben und nicht die referenz auf das element.

  3. Hello out there!

    window.setTimeout("'f'"+style.backgroundColor = 'red';",500);

    Zähle doch mal die Anführungszeichen. Ungerade Anzahl sollte dir verdächtig vorkommen.

    Und das f willst du als String_variable_ verwenden.

    window.setTimeout(f + "style.backgroundColor = 'red';", 500);

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
    1. Die Rettung!

      window.setTimeout(f + ".style.backgroundColor = 'red';", 500);

      So geht´s jetzt, du hattest noch den Punkt vor style vergessen.

      Merci beaucoup, Leute!!