代码之家  ›  专栏  ›  技术社区  ›  JoelFan

取消JavaScript中的onBlur事件?

  •  6
  • JoelFan  · 技术社区  · 15 年前

    我想建立一个 失去焦点 事件 输入 元素,该元素验证值,如果无效,则“取消”模糊并重新讨论输入。但是从 失去焦点 不取消 失去焦点 它的运作方式 onClick公司 . 有没有解决这个问题的方法(可能使用jQuery?)

    3 回复  |  直到 15 年前
        1
  •  8
  •   casablanca    15 年前

    我不知道有什么可靠的跨浏览器方式可以做到这一点。通常在 onblur 事件和呼叫 focus() 当计时器启动时工作。

    例如:

    document.getElementById('your_input_id').onblur = function() {
      var self = this;
      setTimeout(function() { self.focus(); }, 10);
    }
    
        2
  •  4
  •   SLaks    15 年前

    你可以打电话 focus() 在处理程序中。
    这有时会有帮助。

        3
  •  3
  •   Uyghur Lives Matter    11 年前

    您可以使用jQuery的 focus() 函数在零秒超时内。下面是一个例子:

    $('#my_input').bind('blur', function(event) {
       var $input = $(this);
       var is_input_valid = false;
    
       // Code to determine if input is valid
       // ...
    
       if (!is_input_valid) {
          setTimeout(function() {
            $input.focus();
          }, 0);
          return false;
       }
    
    });