Как запустить это событие?

У меня есть два ввода пароля, каждый из которых вводится с клавиатуры пароля, но без ввода с клавиатуры. Клавиатура представляет собой таблицу 3 на 3 с кнопками от 1 до 9.

Как я могу вызвать событие, когда курсор мыши клиента покидает стол клавиатуры?

Что я хочу сделать, так это если пользователь что-то щелкнет, а затем покинет клавиатуру, подтвердит и подтвердит ввод пароля.

Я попытался добавить в таблицу обертку onmouseout и div, но это было не то, что я ожидал, потому что при наведении курсора на кнопку срабатывает событие.

<table onmouseout="ValidatorEnable()">

Спасибо.


person Jay    schedule 09.07.2009    source источник
comment
Можете ли вы опубликовать небольшой образец HTML, который не работает?   -  person John Kugelman    schedule 09.07.2009


Ответы (2)


Вам нужно немного поработать над этим. Прежде всего, по событию готовности документа получите размер и положение таблицы или блока, содержащего клавиатуру. затем в событии 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>

PS: - Я тестировал это в FF 3.5 с firebug. Хром сломался!

person TheVillageIdiot    schedule 09.07.2009

Как обычно, разработчики не проверяют ввод при наведении мыши вне таблицы, а размывают ввод, или вы можете активировать ValidatorEnable() при нажатии кнопки. С наилучшими пожеланиями!

person Community    schedule 09.07.2009
comment
обычно это onblur, но это поле только для ввода с клавиатуры. - person Jay; 09.07.2009