2009-07-09 4 views
0

두 개의 암호 입력이 있습니다. 각 암호 입력은 암호 키패드로 입력되지만 키보드 입력은 필요하지 않습니다. 키패드는 1에서 9까지의 버튼이있는 3 x 3 테이블입니다.이 일정을 실행하는 방법?

클라이언트 마우스 커서가 키패드 테이블을 떠날 때 어떻게 이벤트를 트리거 할 수 있습니까?

사용자가 무언가를 클릭 한 다음 키패드에서 나가고 암호 입력을 확인하고 확인하면됩니다.

onmouseout 및 div 래퍼를 테이블에 추가하려고했지만 커서가 단추 위로 움직이면 이벤트가 발생하기 때문에 예상 한 것이 아닙니다.

<table onmouseout="ValidatorEnable()"> 

감사합니다.

+0

작동하지 않는 작은 HTML 샘플을 게시 할 수 있습니까? –

+0

편집 됨, 관심 덕분에 – Jay

답변

0

일반적으로 개발자는 입력란의 onmouseout을 입력 할 때 입력의 유효성을 검사하지 않지만 입력을 차단할 경우 또는 버튼을 클릭 할 때 ValidatorEnable()을 발생시킬 수 있습니다.

+0

노멀은 onblur이지만 키보드로만 입력 할 수 있습니다. – Jay

1

이 작업에 대한 일부 작업이 필요합니다. 먼저 문서의 준비 이벤트에서 키패드가 포함 된 테이블 또는 div의 크기와 위치를 가져옵니다. 해당 컨테이너의 mouseout 이벤트에서 현재 커서가 컨테이너의 경계 밖으로 벗어 났는지 확인합니다.

<script type="text/javascript"> 
    var tp=0;//top 
    var lft=0;//left 
    var rht=0;//right 
    var bot=0;//bottom 
    function CheckBounds(x,y){ 
     return (x < tp || y < lft) || (x > rht || y > bot); 
    } 
</script> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     tp=$("#tbl").position().top; 
     lft=$("#tbl").position().left; 
     rht=$("#tbl").width() + lft; 
     bot=$("#tbl").height() + tp; 

     $("#tbl").mouseout(function(e){ 
      if(CheckBounds(e.pageX, e.pageY)){ 
      //DO Validation here 
      } 
     }); 
    }): 
</script> 

추신 : 나는 FF 3.5에서 방화 광으로 테스트했습니다. 크롬 추락했습니다!