2010-07-13 39 views
13

tôi có:Textarea phòng chống xuống dòng trên Enter (jQuery)

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

Làm thế nào để ngăn chặn sự xuống dòng mà xuất hiện ngay trước khi nộp mẫu? preventDefault()stopPropagation không hoạt động. Tôi có thể đặt lại văn bản trường theo cách thủ công, nhưng ...

Trả lời

25

Điều này xảy ra vì keyup được gọi sau khi văn bản được chèn vào vùng văn bản.

Để nắm bắt khóa trước khi được nhập, bạn cần nghe sự kiện keydown.

Vì vậy, chỉ cần thay đổi keyup thành keydown và bạn nên làm điều tốt.

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

Cảm ơn. Không thể tin rằng tôi không thấy điều đó. – ash

+1

vâng .. một trong những trường hợp trơn tru .. :) –

+1

cảm ơn! tôi đã dành một giờ cho việc này. – Guanlun

Các vấn đề liên quan