将焦点返回到具有相同类的输入的模糊上
Returning focus on blur with inputs, which have same class
>我在一页上有许多输入,这些输入具有相同的类并且没有ID.
附加到类选择器的绑定事件,用于在条件为真时返回焦点.
但是当单击另一个输入时 - 焦点不返回.
然后想想'因为在另一个元素工作模糊,但不知道需要如何解决这个问题。
<input class="test" value="">
<input class="test" value="">
$(document).ready(function(){
if (condition) {
// return focus - not work
$(".test").blur(function(){
setTimeout(function() {
$(this).focus();
}, 100);
});
}
});
这里有两个问题。
首先,一旦setTimeout
函数执行,this
现在是window
对象而不是输入之一。将对原始this
的引用存储为模糊处理程序的一部分。
其次,应移动条件检查。就像现在一样,一旦你模糊了输入框,你实际上将被迫永远不会离开它,因为模糊处理程序已经附加并且总是重新聚焦。我不知道你的condition
是什么,所以我要把它放在setTimeout
回调中。它也可以在setTimeout
创作之前进行。
下面是一个假定实现的详细演示小提琴。下面是一个淡化的示例:
<input class="test" value="">
<input class="test" value="">
$(document).ready(function(){
// return focus - not work
$(".test").blur(function(){
var that = this;
setTimeout(function() {
if (condition) {
$(that).focus();
}
}, 100);
});
});
条件应该处于模糊事件中,请参阅此小提琴: http://jsfiddle.net/UudLV/1/
如果输入值为空,它将焦点返回到最后一个焦点输入。
$(".test").blur(function() {
if($(this).val().length === 0) { //Your condition, can be anything
$(this).focus(); //Return focus
}
});
将焦点返回到最后一个焦点元素与选择器无关。on blur
事件将最后一个焦点元素作为上下文传递给回调函数,因此,this
元素将成为该元素。
编辑*我不完全确定这是OP想要做的。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 单击jquery清除输入值
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 为具有相同类的多个输入添加、移除和添加一个类
- 如何使用输入模糊事件更新多个具有相同类名的标签的文本
- 通过jquery检查在具有相同类的下拉框中输入的重复值
- 从具有相同类名的不同输入字段中获取值
- 按键,键控和更改具有相同类名的输入的事件
- 将焦点返回到具有相同类的输入的模糊上
- 将具有相同类名的表单输入字段放入数组中
- 如何添加具有相同类名的表单输入字段
- 获取具有相同类的多个输入字段的值并添加到javascript对象中