2013-03-07 7 views
1

텍스트 상자 외부를 클릭하면 경고를 표시하는 텍스트 상자가 있습니다. 사용자가 Enter를 누르면 알림도 표시하려고합니다. 여기에 내가 가지고있는 것 :키를 누를 때 jQuery로 텍스트 상자가 흐려짐

<input id="txtInput" type="text" onblur="alert('Hello');" /> 

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#txtInput").keyup(function (event) { 
     if (event.keyCode == 13) { 
      $(this).blur(); 
      return false; 
     } 
    }); 
}); 

텍스트 상자 안을 클릭 한 다음 바깥 쪽을 클릭하면 경고가 올바르게 표시됩니다.

그러나 내가 텍스트 상자 안에 있고 Enter를 누르면 경고가 표시됩니다. 경고를 닫으면 다른 경고가 표시됩니다 (onblur가 텍스트 상자에서 호출되기 때문에 가정합니다).

$(this).blur()은 텍스트 상자에서 포커스를 제거하지 않습니까? 아니면 이것을 할 수있는 더 좋은 방법이 있습니까?

+0

예를 들어 http://jsfiddle.net/ERdaa/가 있습니다. OSX에서 Chrome에서 예상대로 작동합니다. 내가 언급 한 문제는 발생하지 않습니다. – idrumgood

+1

어떤 브라우저와 jquery의 버전을 테스트하고 있습니까 ?? 귀하의 코드는 크롬/jquery와 잘 작동합니다 1.9.1 –

+0

크롬 버전 25 및 jQuery 1.8.3 – Steven

답변

2

왜이 기능이 작동하는지는 알 수 없지만 HTML에서 onblur 이벤트를 제거하여 js에 넣으면 작동합니다.

http://jsfiddle.net/ERdaa/4/

$("#txtInput").keyup(function (event) { 
    if (event.keyCode == 13) { 
     $(this).blur(); 
     return false; 
    } 
}).blur(function(){ 
    alert('Hello'); 
}); 

[편집] 체인 대신에 두 번 선택기를 사용하여 사용하는 코드를 정리.

관련 문제