javascript - focusout() 的组类成员表单元素

标签 javascript jquery

我正在尝试创建一个在任何类元素失去焦点时触发的函数:

<h5>ON Time</h5>
<div class = 'timeSetting'><form id = 'weekendStart'>
<input type='number' inputmode= 'numeric' pattern='[0-9]*' id = 'onHour' value='6' name = 'value' min='1' max='12'><input type='number' inputmode= 'numeric' pattern='[0-9]*' id = 'onMinute' value='30' name = 'value' min='0' max='59'>
<select id = 'weekendStartAmPm'>
<option value = 'weekendStartAm'>am</option>
<option value='weekendStartPm'>pm</option>
</select>
</form></div>
<h5>OFF Time</h5>
<div class = 'timeSetting'><form>
<input type='number' inputmode= 'numeric' pattern='[0-9]*' id = 'onHour' value='10' name = 'value' min='1' max='12'><input type='number' inputmode= 'numeric' pattern='[0-9]*' id = 'onMinute' value='00' name = 'value' min='0' max='59'>
<select id = 'weekdayStartAmPm'>
<option value='wkdayStartPm'>pm</option>
<option value = 'wkdayStartAm'>am</option>
</select>
</form></div>

我知道这不对,但我想要类似的东西:

$('.timeSetting').focusout(function(){
    console.log('lost focus');
});

用户可以在表单元素之间进行切换并编辑转移焦点,一旦类的任何(和所有)成员失去焦点,该函数就会触发...

最佳答案

这是一个基于我几年前写的用于处理焦点组的示例:http://jsfiddle.net/TrueBlueAussie/0y2dvxpf/6/

$('div.timeSetting').on('focus focusin', 'input,select', function() {
  var $editor = $(this).closest('.timeSetting');
  $editor.addClass("focused");

}).on('blur focusout','input,select', function() {
  var $editor = $(this).closest('.timeSetting');
  // wait for the new element to be focused
  setTimeout(function() {
    // See if the new focused element is in the editor
    if (!$.contains($editor[0], document.activeElement)) {
      $editor.removeClass("focused");
    }
  }, 0);
});

目前,它只是说明了类更改的焦点,但您可以轻松地触发自定义事件并捕获祖先上的事件。

关于javascript - focusout() 的组类成员表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41315625/

相关文章:

javascript - jQuery - 需要在另一个函数中使用第一个函数中的变量?

jquery - 选择正确的元素进行动画处理

javascript - 当 angularjs 抛出错误时,如何使 TestCafe 测试失败?

javascript - $.getJSON 不起作用,但脚本中的 JSON 对象有效

javascript - 使用 javascript 和 jquery 在 div 中填充 Content(html) 以固定高度和宽度

javascript - 如果用户单击另一个选项,如何使值自动更新?

javascript - 使用 Django、Ajax、jQuery 提交表单而不刷新页面?

javascript - 如何通过javascript获取查询字符串?

javascript - Sequelize Where 语句与日期

javascript - CSRF 和 CORS 与 Django(REST 框架)