在这种情况下我无法使用表单,但我有一组输入元素。我有一个表行,每个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。
答案 0 :(得分:2)
您将使用$('。table-row input:focus')。length检查它。如果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>
答案 1 :(得分:0)
你可以将tabIndex设置为DOM的所有元素,并且在焦点更改时你可以检查它是否是最后一个tabINdex值,如果是这样那么那么渲染你想要的另一个HTML