JavaScript HTML DOM onfocus 事件

  • onfocus 事件

    当元素获得焦点时,会发生onfocus事件。onfocus事件通常与<input>,<select>和<>一起使用。
    提示onfocus事件与onblur事件相反 。
    提示onfocus事件类似于onfocusin事件。主要区别在于onfocus事件不会冒泡。因此,如果要查明元素或其子元素是否获得焦点,可以使用onfocusin事件。但是,您可以通过对onfocus事件使用addEventListener()方法的可选useCapture参数来实现此目的。
    输入字段获得焦点时执行JavaScript:
    <input type="text" onfocus="myFunction()">
    
    尝试一下
  • 浏览器支持

    IE/Edge Chrome FireFox Safari Opera
    事件
    onfocus
    支持
    支持
    支持
    支持
    支持
  • 语法

    在HTML中:
    <element ondrag="myScript">
    在JavaScript中:
    object.ondrag = function(){myScript};
    在JavaScript中,使用addEventListener()方法:
    object.addEventListener("focus", myScript);
    注意:在Internet Explorer 8和更早版本不支持使用addEventListener()方法。
  • 技术细节

    项目 描述
    冒泡: 没有
    取消: 没有
    事件类型: FocusEvent
    支持的HTML标记: 所有HTML元素,除了:<base><bdo><br><head><html><iframe><meta><param><script><style><title>
    DOM版本 DOM Event Level 2
  • 更多例子

    将“onfocus”与“onblur”事件一起使用:
    <input type="text" onfocus="focusFunction()" onblur="blurFunction()">
    尝试一下
    清除焦点上的输入字段:
    <input type="text" onfocus="this.value=''" value="Blabla">
    尝试一下
    事件委托:将addEventListener()的useCapture参数设置为true:
    <form id="myForm">
      <input type="text" id="myInput">
    </form>
    
    <script>
    var x = document.getElementById("myForm");
    x.addEventListener("focus", myFocusFunction, true);
    x.addEventListener("blur", myBlurFunction, true);
    
    function myFocusFunction() {
      document.getElementById("myInput").style.backgroundColor = "yellow"; 
    }
    
    function myBlurFunction() {
      document.getElementById("myInput").style.backgroundColor = ""; 
    }
    </script>
    尝试一下
    事件委托:使用focusin事件(Firefox不支持):
    <form id="myForm">
      <input type="text" id="myInput">
    </form>
    
    <script>
    var x = document.getElementById("myForm");
    x.addEventListener("focusin", myFocusFunction);
    x.addEventListener("focusout", myBlurFunction);
    
    function myFocusFunction() {
      document.getElementById("myInput").style.backgroundColor = "yellow"; 
    }
    
    function myBlurFunction() {
      document.getElementById("myInput").style.backgroundColor = ""; 
    }
    </script>
    尝试一下
  • 相关页面

    HTML参考:HTML onfocus 属性