2009-08-05 53 views
12

Tôi chỉ muốn tắt phím Nhập trên bàn phím. Tập lệnh sau khóa toàn bộ bàn phím xuống vì một số lý do ngoại trừ việc vẫn chỉ cho phép Nhập phím để sử dụng.Tắt bàn phím <enter> phím

Nếu điều này giúp xác định những gì bị thiếu hoặc sai, tôi đang sử dụng V.S. 2005, VB.NET 2.0 và I.E. 7.

<meta http-equiv="content-type" content="text/html; charset=windows-1252"> 

<head> 
    <meta http-equiv="content-type" content="text/html; charset=windows-1252"> 

    <script language="JavaScript"> 
    function TriggeredKey(e) 
    { 
     var keycode; 
     if (window.event) keycode = window.event.keyCode; 
     if (window.event.keyCode = 13) return false; 
    } 
    </script> 
</head> 
<body onkeydown="TriggeredKey(this)"> 
+0

câu trả lời có thể là xung quanh giống nhau, nhưng câu hỏi không được lặp lại. – Light93

Trả lời

39

Nếu bạn có jQuery, hãy thử này:

$('html').bind('keypress', function(e) 
{ 
    if(e.keyCode == 13) 
    { 
     return false; 
    } 
}); 
+0

Hoặc bạn có thể sửa mã của mình bằng câu trả lời của Jason. Tôi chỉ thích jQuery. –

+0

Cảm ơn bạn đã lựa chọn thay thế. – Cameron

+0

Tôi thích câu trả lời này và thích thực tế là bạn có thể thay thế 'html' bằng một bộ chọn cụ thể hơn để cho phép vô hiệu hóa nhắm mục tiêu của khóa nhập (hoặc bất kỳ khóa nào khác cho vấn đề đó). –

20

bạn = có lẽ nên được một == (so vs phân)

if (window.event.keyCode == 13) return false; 
+0

Bắt tốt, tôi đã bỏ lỡ điều đó! –

+0

Tôi cũng đã thử tính năng này và nút enter vẫn không bị tắt, mặc dù phần còn lại của bàn phím có thể sử dụng được trong khi hầu hết các phím đã bị khóa trước đó. Có thể có cài đặt mạng không xác định đang tạo ra sự không tương thích này không? Tôi không quen với JavaScript, nhưng điều này có vẻ như nó đơn giản và dễ hiểu. – Cameron

+2

@Cameron - xin lỗi rằng đây là một vài năm trễ ... bạn cần phải bao gồm câu lệnh trả về khi bạn chỉ định trình xử lý sự kiện của mình để chuyển giá trị trả lại cho hệ thống sự kiện: –

2

Tôi đã sử dụng mã này thành công.

function handleKeypress(e){ 

    e = e || window.event ; 
    if (e == null){ 
     return false; 
    } 

    if (e.keycode == 13){ 
     CompleteEvent(e); 
    } 
} 

function CompleteEvent(e){ 
    e.cancelBubble = true; 
    e.returnValue = false; 
} 

Ngoài ra, tôi khuyên bạn nên sử dụng hình thức móc cài đặt mới cho javascript.

function setKeyHook() 
{  
    var eventName = 'onkeydown'; 
    var handlerFunc = handleKeypress; 


    body.detachEvent(eventName, handlerFunc);    

    body.attachEvent(eventName, handlerFunc); 

} 

onload = setKeyHook; 

Chúc may mắn.

Xem this question để biết thêm thông tin mà bạn muốn. Kudo đến Peter Bailey để dạy tôi.

+0

Mặc dù tôi không thể làm việc này, có thẻ {tag bị thiếu không? Cảm ơn mã! Tôi sẽ tiếp tục chơi với điều này. Có vẻ như một cái gì đó khác trong mã hoặc môi trường của tôi không chơi tốt. – Cameron

+0

Có. Bây giờ tôi đã sửa nó. Xin lỗi vì điều đó. –

+0

Trong phần thứ hai, tôi thấy thật vui khi tránh viết 'document.onkeydown = handler', bạn sẽ viết' window.onload = handler'! (bạn biết 'onload =' thực sự có nghĩa là 'this.onload =' và 'this', ở đây, là đối tượng' window'). Ngoài ra, nhờ mã. – FrancescoMM

0

Điều này phù hợp với tôi.

<meta http-equiv="content-type" content="text/html; charset=windows-1252"> 

<head> 
<meta http-equiv="content-type" content="text/html; charset=windows-1252"> 

<script language="JavaScript"> 
function TriggeredKey(e) 
{ 
    var keycode; 
    if (window.event) keycode = window.event.keyCode; 
    if (window.event.keyCode != 13) return false; 
} 
</script> 
</head> 
<body onkeydown="TriggeredKey(this)"> 
+1

Bây giờ bạn chỉ cần đảo ngược nó, lỗi thực sự là = nên đã được == – GroundZero

+0

@ GroundZero Tôi cảm ơn bạn đã sửa lỗi của tôi và sự khai sáng javascript của bạn. Sai lầm của tôi là do một giả định sai lầm rằng tất cả các lệnh trên dòng của 'return false' line, được đính kèm.Cách tôi thử nghiệm mã là bằng cách chuyển 'return false;' với 'return false; cảnh báo ("!"); '. Tuy nhiên, lệnh bổ sung dường như được coi là một tuyên bố khác. –

0
<script type="text/javascript"> 

function stopRKey(evt) { 
    var evt = (evt) ? evt : ((event) ? event : null); 
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
    if ((evt.keyCode == 13) && (node.type=="text")) {return false;} 
} 

document.onkeypress = stopRKey; 

</script> 

add script giữa

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