2009-04-16 38 views
5

Tôi đang cố gắng lấy khóa nhập từ một vùng văn bản bằng javascript. Vấn đề là mặc dù tôi có thể phát hiện ra rằng phím "enter" đã được nhấn, tôi không thể tránh nó đến trong văn bản. Tôi không muốn phím nhập tức là "\ n" được hiển thị trong vùng văn bản.Phím chụp Javascript

Bất kỳ đề xuất nào về cách đạt được điều đó?

Cảm ơn bạn.

Trả lời

6

Hãy thử thiết lập chức năng này là sự kiện onKeyDown cho vùng văn bản:

ví dụ: onkeydown="javascript:return fnIgnoreEnter(event);"

function fnIgnoreEnter(thisEvent) { 
    if (thisEvent.keyCode == 13) { // enter key 
    return false; // do nothing 
    } 
} 
0

Thậm chí nếu bạn chặn các nút tham gia, họ có thể vẫn dán vào dòng mới. Điều này sẽ ngăn chặn nút nhập, và loại bỏ bất kỳ dòng mới và vận chuyển trở lại mà có trong anyway (chỉ cố gắng này trên FF, và suy nghĩ tối thiểu đưa vào điều này - nó có thể không hoạt động trên Safari hoặc IE như là).

<textarea rows="20" cols="50" onkeydown="return ignoreEnter(event);" onkeyup="noEnter(this);"></textarea> 
<script type="text/javascript"> 
function ignoreEnter(event) { 
return thisEvent.keyCode != 13; // enter key 
} 

function noEnter(e) { 
e.value = e.value.replace(/\n/g,''); 
e.value = e.value.replace(/\r/g,''); 
} 
</script> 
1

Gần đây và sạch hơn nhiều: sử dụng event.key thay vì event.keyCode. Không còn mã số tùy ý nào nữa!

function onEvent(event) { 
    if (event.key === "Enter") { 
     return false; 
    } 
}; 

Mozilla Docs

Supported Browsers

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