在Javascript中查找是否关注了复选框

时间:2009-02-11 00:42:47

标签: javascript dom checkbox

在Javascript中如何判断复选框是否具有焦点?

我认为会有一个名为isfocused的方法或属性。但显然不是。

通过焦点我的意思是他们已经使用键盘选中了它,此时按下空格会检查框。

4 个答案:

答案 0 :(得分:4)

创建连接到onfocus事件的事件处理程序。当它被调用时,设置一个全局变量来记住它有焦点。在onblur事件上写另一个清除变量的事件。

答案 1 :(得分:1)

当元素获得焦点时会触发onfocus事件。

<script type="text/javascript">

var isFocused = false;

</script>

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

答案 2 :(得分:1)

您可能只需要勾选onfocus和onblur事件以获取复选框,以便跟踪它何时获得并失去焦点。

答案 3 :(得分: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>