Установить фокус на текстовое поле, когда не сфокусировано - PullRequest
1 голос
/ 05 сентября 2010

Я хочу, чтобы текстовое поле всегда было сфокусированным. Когда они щелкают вне текстового поля, я хочу, чтобы фокус снова вернулся в текстовое поле.

Как бы я сделал это с помощью jquery?

$('input').focus();

$('input').**unfocused?**( function($) { $('input').focus();} );

Ответы [ 3 ]

3 голосов
/ 05 сентября 2010

Вы ищете событие blur :

$(':text').blur(function() { this.focus(); });
0 голосов
/ 30 ноября 2010

Привязать, чтобы получить событие изменения, и проверить, нужно ли фокусировать внимание на этом входе, если так, вставьте некоторые данные в документ.$ (document) .data ('_ force_focus', e.target)

$('input.force').bind('change', function(e) {
        if( need_force_focus() ) {
                $(document).data('_force_focus', e.target);
        } else {
                $(document).removeData('_force_focus');
        }
   });

Теперь документ привязывается к событию focusin, проверяя, содержат ли документ данные «_force_focus».Если это так, установите фокус на значение.Важно предотвратить повторный фокус фокусировки, протестировав e.target

$(document).bind('focusin', function (e) {
     var t = $.data(document, '_force_focus');
             if( t && e.target !== t ) {
                     $(t).trigger('focus');
                     return false;
             }
             return true;
     });
0 голосов
/ 05 сентября 2010

Следующий код является альтернативным решением, которое зависит от периодической проверки состояния элемента управления.

var controlFocus=false;
$("#txtName").focus(function(){
    $(this).addClass("focused"); 
    if(!controlFocus) {
        controlFocus = true;
        setInterval(function(){ 
            var o = $("#txtName");
            if(!o.hasClass("focused")) o.focus();
        }), 200);
    }
}).blur(function(){$(this).removeClass("focused");});

После того как текстовое поле (с именем txtName) получает первый фокус, каждые 0,2 секунды код контролирует, является ли текстовое полеимеет фокус.Если это не так, он сфокусирован.Но это может быть действительно раздражающей вещью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...