2010-11-19 4 views
10

이 스크립트를 찾을 수 없습니다페이지에 키를 입력하지만, 텍스트 영역

 

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; 


만 문제는, 그것은 또한 텍스트 영역에 사용되는 키의 존재를 입력 중지합니다. 어떤 번거 로움입니다. onkeypress="return handleEnter(this, event)"

을하지만 우리의 형태는 매우 복잡하고, 나는 일을 깨끗한 방법을 찾고 있어요 :

은 내가 사용하는 장난 삼아 생각해왔다.

답변

25

당신은 일의 nodeName 또는 tagName를 확인해야 전자 이벤트는 다음과 같이 여기에 대상 :

if (evt.keyCode == 13 && node.nodeName != "TEXTAREA") { return false; } 

내가 눈치 이것은 이미 jQuery를 사용하는 것으로 받아 들여졌다 후, 당신은 단지 이것에 위의 모든 코드를 대체 할 수

$(document).keypress(function (e) { 
    if(e.which == 13 && e.target.nodeName != "TEXTAREA") return false; 
}); 
+0

코드를 그대로 수정하거나 nodeName을 변경해야합니까? – 422

+0

@ 422 - 이것은 if ((evt.keyCode == 13) && (node.type == "text")) {return false;}'코드 행을 대체하기위한 것입니다. false'라고 입력하면 입력 한 내용이 '