检查是否有任何输入聚焦或处于活动状态,而不是在表单中
Check if any inputs are focused or active not in a form
在这种情况下我不能使用表单,但我有一组输入元素。我有一个表格行,每个 td 都是一个输入。一旦一个人失去焦点,我想检查是否有其他人处于活动状态,如果没有,我想运行一些代码。
.js
$(document).on("blur", ".table-row", function(e) {
var $tr = $(e.currentTarget),
$inputs = $tr.find("inputs);
$inputs.each(function(input) {
$tr[input].is(":focus");
});
});
这个想法是我正在创建一个编辑表单。我想让一旦表单完成编辑,我将呈现一些不同的 html。
您将
使用 $('.table-row input:focus').length 进行检查。如果长度为 0,则没有集中输入。
但是,如果您在触发事件后立即检查它,您将永远无法正确处理它,因为事件在输入模糊之后触发,但在另一个输入获得焦点之前触发。
因此,您可以在即时超时中包装评估。它将在 0 秒后触发,但在执行其他同步代码后触发。
$(document).on("blur", "input", function(e) {
setTimeout(function(){
if ($('input:focus').length) {
console.log(true);
} else {
console.log(false);
}
}, 0);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<td><input type="text"></td>
</tr>
<tr>
<td><input type="text"></td>
</tr>
<tr>
<td><input type="text"></td>
</tr>
<tr>
<td><input type="text"></td>
</tr>
<tr>
<td><input type="text"></td>
</tr>
</table>
您可以将 tabIndex 设置为 DOM 的所有元素,并且在焦点更改时,您可以检查它是否是最后一个 tabINdex 值,如果是这样,那么渲染您想要的另一个 HTML
相关文章:
- 单击我网站中的链接时打开新选项卡,保持当前选项卡处于活动状态
- PHP-每天只有2小时的活动联系表单
- 在检查单选按钮检查状态后启用/禁用表单元素
- 创建一个复选框按钮的散列,这些按钮在单击时在Twitter Bootstrap Button组中处于活动状态
- 是否可以在没有视图状态和回发的情况下使用asp.net web表单
- 使用Angular.js验证表单输入的原始状态
- Javascript:在表单中输入数据时,提交按钮不处于活动状态
- 针对某个状态禁用整个表单元素.反应
- 状态未立即更新时的 ReactJS 表单验证
- 从 JavaScript 检索表单提交的状态
- 如何强制输入表单中的活动下一个输入字段
- 如何使用 ExtJS6 cookie 提供程序和状态管理登录表单.管理器 + OL3 用于网络制图应用程序
- 多个进度状态 + Ajax 表单插件
- jQuery:从参数字符串设置表单状态
- 使用 React 创建的表单不会更新支持状态对象
- 检查是否有任何输入聚焦或处于活动状态,而不是在表单中
- React Native:不使用状态填充表单(无状态表单)
- 如何在setCustomValidity("…)"之后清除,删除或重置HTML5表单验证状态
- 表单提交状态成功/失败
- 在javascript中切换表单输入状态