首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >blur()与onblur()

blur()与onblur()
EN

Stack Overflow用户
提问于 2011-03-07 02:55:15
回答 1查看 115.2K关注 0票数 23

我有一个带有onblur事件侦听器的输入标记:

代码语言:javascript
复制
<input id="myField" type="input" onblur="doSomething(this)" />

通过JavaScript,我希望在此输入上触发模糊事件,以便它反过来调用doSomething函数。

我最初的想法是调用blur:

代码语言:javascript
复制
document.getElementById('myField').blur()

但这不起作用(尽管没有错误)。

这样做:

代码语言:javascript
复制
document.getElementById('myField').onblur()

为什么呢?.click()将通过onclick侦听器调用附加到元素的单击事件。为什么blur()不能以同样的方式工作?

EN

回答 1

Stack Overflow用户

发布于 2011-03-07 03:23:05

与pointy所说的相反,blur()方法确实存在,并且是w3c standard的一部分。以下示例适用于所有现代浏览器(包括IE):

代码语言:javascript
复制
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <title>Javascript test</title>
        <script type="text/javascript" language="javascript">
            window.onload = function()
            {
                var field = document.getElementById("field");
                var link = document.getElementById("link");
                var output = document.getElementById("output");

                field.onfocus = function() { output.innerHTML += "<br/>field.onfocus()"; };
                field.onblur = function() { output.innerHTML += "<br/>field.onblur()"; };
                link.onmouseover = function() { field.blur(); };
            };
        </script>
    </head>
    <body>
        <form name="MyForm">
            <input type="text" name="field" id="field" />
            <a href="javascript:void(0);" id="link">Blur field on hover</a>
            <div id="output"></div>
        </form>
    </body>
</html>

请注意,我使用了link.onmouseover而不是link.onclick,因为否则单击本身就会移除焦点。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5212651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档