我想要始终关注文本字段。当他们点击文本框时,我想让焦点回到文本框。当未聚焦时将焦点设置在文本字段
我该如何用jquery完成此任务?
$('input').focus();
$('input').**unfocused?**(function($) { $('input').focus();});
我想要始终关注文本字段。当他们点击文本框时,我想让焦点回到文本框。当未聚焦时将焦点设置在文本字段
我该如何用jquery完成此任务?
$('input').focus();
$('input').**unfocused?**(function($) { $('input').focus();});
下面的代码是一种替代解决方案,它依赖于定期检查控制的状态。
var controlFocus=false;
$("#txtName").focus(function(){
$(this).addClass("focused");
if(!controlFocus) {
controlFocus = true;
setInterval(function(){
var o = $("#txtName");
if(!o.hasClass("focused")) o.focus();
}), 200);
}
}).blur(function(){$(this).removeClass("focused");});
后文本框(命名txtName的)获取其第一焦点,每隔0.2秒,文本框的代码控制是否具有焦点。如果不这样做,那就集中注意力。但这可能是一件非常烦人的事情。
我明白这个主意,但脚本给了我错误。此外,不会建立起来,使网站真的很慢? – twodayslate 2010-09-05 09:02:25
什么是错误?事实上,我在Jsfiddle上用Chrome试了一下。您可以将间隔增加到500或1000. – Zafer 2010-09-05 09:52:28
从错误控制台:错误:缺少;在声明之前 源代码: }),200); – twodayslate 2010-09-12 00:38:57
您正在寻找的blur
event:
$(':text').blur(function() { this.focus(); });
'$(“input”)。blur(function(){ $(“input”)。focus(); });'不起作用 – twodayslate 2010-09-05 02:28:45
他是对的......它应该,但它没有。 http://jsfiddle.net/pUFAV/ – 2010-09-05 02:34:31
绑定以获取更改事件,并检查焦点是否必须强制输入此输入,如果是这样,请在文档中插入一些数据。 $(文件)。数据(“_ force_focus”,e.target)
$('input.force').bind('change', function(e) {
if(need_force_focus()) {
$(document).data('_force_focus', e.target);
} else {
$(document).removeData('_force_focus');
}
});
现在在文档绑定到focusIn事件,如果测试文档有“_force_focus”数据。如果是这样,将焦点设置为该值。重要的是通过测试e.target来防止重新触发。
$(document).bind('focusin', function (e) {
var t = $.data(document, '_force_focus');
if(t && e.target !== t) {
$(t).trigger('focus');
return false;
}
return true;
});
jQuery事件处理程序不会接受'$'参数。 (他们采取事件对象) – SLaks 2010-09-05 02:27:02
您是否考虑过制作“永远集中”文本字段的可用性含义?我不知道你,但文本框抓住焦点是我在互联网上的个人宠物仇恨之一(特别是当你填写表格和焦点中间打字的部分方式) – 2010-09-05 02:27:43
是的,我有。整个页面只有一个字段,这是用户的唯一焦点 – twodayslate 2010-09-05 03:00:56