2010-07-13 4 views
13

ich habe:Textarea Newline Prävention auf Enter (jQuery)

$('#myTextArea').keyup(function(e) { 
    if(e.keyCode == 13) { 
     e.preventDefault(); // Makes no difference 
    $(this).parent().submit(); // Submit form it belongs to 
    } 
}); 

Wie verhindere ich das Newline, die direkt vor dem Formulareinreichung auftaucht? preventDefault() und stopPropagation funktionieren nicht. Ich konnte den Feldtext manuell zurücksetzen, aber ...

Antwort

25

Das passiert, weil keyup aufgerufen wird, nachdem der Text in den Textbereich eingefügt wurde.

Um den Schlüssel vor der Eingabe abzufangen, müssen Sie auf das Ereignis keydown warten.

Also ändern Sie einfach die keyup zu keydown und Sie sollten gut gehen.

$('#myTextArea').keydown(function(e) { 
+2

Danke. Ich kann nicht glauben, dass ich das nicht gesehen habe. – ash

+1

ja .. einer dieser rutschigen Fälle .. :) –

+1

danke! Ich habe eine Stunde damit verbracht. – Guanlun