2009-02-11 4 views
1

В Javascript, как я могу определить, имеет ли флажок фокус или нет?В Javascript найдите, если флажок установлен

Я думал, что будет метод или свойство, называемое isfocused. Но, видимо, нет.

В фокусе я имею в виду, что они подключены к нему с помощью клавиатуры, и в этот момент нажмите пробел, чтобы установить флажок.

+0

Зачем вам нужно знать, имеет ли он фокус? Означает ли это, что они выбрали ярлык рядом с ним? Только «chec» и снятие флажка, похоже, имеют значение. –

+0

В javascript я отвечаю на некоторые события клавиатуры, и мне нужно знать, последний ли он в списке. – Ray

+0

Что происходит, если они используют мышь? –

ответ

4

Создайте обработчик событий, подключенный к событию onfocus. Когда он вызывается, установите глобальный var, чтобы помнить, что он имеет фокус. Напишите еще одно событие onblur, которое очищает переменную.

1

Существует событие onfocus, которое срабатывает, когда элемент получает фокус.

<script type="text/javascript"> 

var isFocused = false; 

</script> 

<input type="checkbox" name="team" value="team" onfocus="javascript:isFocused = true;">Spurs<br> 
1

Возможно, вам придется просто подключиться к событиям onfocus и onblur для этого флажка, чтобы отслеживать, когда он получает и теряет фокус.

1

Вот пример основ реализации, которые могут вам помочь. Примечание. Выходной материал предназначен только для демонстрационных целей, а не для частичного решения.

<html> 
<head> 
    <script type="text/javascript"> 

    onload = function() 
    { 
     var f = document.forms.test; 
     f.focusedElem = null; 
     updateOutput(f); 

     for (var i = 0, l = f.elements.length, elem; i < l; i++) 
     { 
      elem = f.elements[i]; 
      elem.onfocus = function(elem) 
      { 
       return function() 
       { 
        elem.form.focusedElem = elem; 
        updateOutput(elem.form); 
       } 
      }(elem) 

      elem.onblur = function() 
      { 
       f.focusedElem = null; 
       updateOutput(f) 
      } 
     } 
    } 

    function updateOutput(f) 
    { 
     document.getElementById('output').innerHTML = (null == f.focusedElem) ? 'Nothing!' : f.focusedElem.id; 
    } 

    </script> 
</head> 
<body> 

<form name="test"> 

<input type="checkbox" name="foo" id="foo1"> 
<input type="checkbox" name="foo" id="foo2"> 
<input type="checkbox" name="foo" id="foo3"> 
<input type="checkbox" name="foo" id="foo4"> 

</form> 

What has focus? <span id="output"></span> 

</body> 
</html>