Bei "enter" mache das gleiche wie bei "button klick"

  • Abend ..


    Ich Habe ein Eingabeformular, wenn ich dort auf einen Button klicke wird BB Code eingefügt. funktion insert(BBanfang, BBende);
    Jetzt will ich aber auch das wenn ich enter drücke ein BB Code eingefügt wird.
    Bei der Lösung stehe ich gerade auf'm Schlauch.


    funktioniert soweit insert(); :


    Mein stetig scheiternder Versuch:

    JavaScript
    1. document.onkeydown = function(event) {
    2. if (event.keyCode == 13)/* 13 = escape" */ {
    3. insert([BB], [/BB]);
    4. }
    5. };


    Danke für Hilfe :)

  • nachdem ich "" um die BBs gemacht hab, wird bei mir das event bei ENTER ausgelöst.

    JavaScript
    1. document.onkeydown = function(event) {
    2. if (event.keyCode == 13)/* 13 = escape" */ {
    3. insert("[BB]", "[/BB]");
    4. }
    5. };


    Aber dann gibts fehler :: Unhandled Error: Cannot convert 'document.forms['formular']' to object


    Was wird denn eigtl erwartet?


    EDIT:
    Funktioniert doch. Ich hab nur übersehen, dass die Form "formular" und das Feld "inhalt" heißen muss.
    Also bei ENTER bekomme ich die Tags
    in opera 12, opera 19, FF latest, IE(dunno), chrome latest

  • Noch eine Frage, was mache ich falsch? ^^
    Wie bekomme ich hin, das jedesmal, nach nem error neu geprüft wird?


    Meine Idee war:


    funktioniert aber net :/

  • Siehe:
    if(/*abgesendet && */typeof aTag == 'string' && aTag == ''){


    und was geht nicht bei

    JavaScript
    1. //folgendes funktioniert nicht
    2. var aTag = '[link url="'+result+'"]';


    oO?


    EDIT: sehe grad Du hast editiert :D


    edit2:


    /*Unhandled Error: Undefined variable: error*/
    Und wieso schließt Du functions mit ; ab ? :D

  • Sooo also error handling ist geklärt, aber es entsteht ein Fehler. Kann es sein das variablen in funktionen "eingesperrt" sind?
    bei //fehler --> diese variable wird nicht gesetzt oder im weiterem verlauf nicht verarbeitet, die alte version der var wird verarbeitet

  • Naja klar. Innerhalb der function erstellte vars existieren außerhalb nicht.
    Es sei denn Du hast die var global gesetzt.
    Heißt: "ganz draußen" definierst Du die var und die wird dadurch global.

    JavaScript
    1. var globale_var;
    2. function test(){
    3. alert('var "globale_var" in func: '+globale_var); /*undefined - klar*/
    4. globale_var = 1;
    5. alert('var "globale_var" in func auf 1 gesetzt: '+globale_var); /*1, auch klar*/
    6. }
    7. test();
    8. alert('var "globale_var" außerhalb der func: '+globale_var); /*1, weil in func auf 1 gesetzt*/


    Ich nutze mitlerweile gern Klassen, da man die Werte "schöner" nutzen kann.
    (Auch wenn es in JS pseudo-Klassen sind)

  • Aber die Var ist ja von außerhalb definiert? und wird in der Funktion geändert und danach weiterverarbeitet..


    hier nochmal mein Script


    Ach zum Thema Klassen, ich habe keine Ahnung von JS, ich arbeite via
    try, error, google -> learn
    Du darfst mir gerne n Beispiel machen ;)


    Edit: Ich habs, man darf die Var nur nicht neu definieren:
    var aTag -> var aTag

  • function in ner function? =)


    Wenn Du die var mit var varxyz setzt/änderst, dann ist die (soweit ich weiß) über den Haufen geschmissen.
    Also einmal außerhalb definieren
    var xyz;
    und innerhalb (oder überhaupt) dann nur noch so zuweisen:
    xyz = 1; /*ohne "var"*/



    btw: wenn Du die function in der function lassen willst, dann würde ich empfehlen zu prüfen, ob die schon existiert (php: function_exists() , weiß es in JS grad nicht).

  • Script um in einem Formular, was den
    - name="formular"
    und das textareafeld
    - name="input"


    hat, beliebige Zeichen (z.B. BB-Codes) an der Curserposition einzufügen.


    Übergeben werden:
    - anfangs Zeichen (aTag)
    - end Zeichen (eTag)


    (es müssen nicht beide übergeben werden).


    Hier das Javascript:


    hier Bsp. html

    HTML
    1. <!-- hier ist der Name wichtig! -->
    2. <form name='formular'>
    3. <input type='button' value='Zeilenumbruch' onClick="insert('[br]', '')">
    4. <input type='button' value='Link' onClick="insert('[link', '[/link]')">
    5. <input type='button' value='Absatz' onClick="insert('', '[p]')"><br>
    6. <!-- hier ist der Name wichtig! -->
    7. <textarea name='inhalt' cols='70' rows='5' wrap='off'></textarea>
    8. </form>