Javascript 无法使用jQuery将焦点指定给特定字段
我正在用jQuery验证一个简单表单:Javascript 无法使用jQuery将焦点指定给特定字段,javascript,jquery,Javascript,Jquery,我正在用jQuery验证一个简单表单: $('input:text').blur(function(){ if ($(this).val() == "") { $("#" + $(this).attr("name") + "_error").show(); $(this).css("border", "2px solid red"); $(this).focus(); return false; } }); $(this.focus()没有将
$('input:text').blur(function(){
if ($(this).val() == "") {
$("#" + $(this).attr("name") + "_error").show();
$(this).css("border", "2px solid red");
$(this).focus();
return false;
}
});
$(this.focus()代码>没有将焦点保持在当前字段上-是否有不允许的原因,或者我遗漏了什么
更新
我一直在玩弄代码;当我试图通过id选择特定字段来聚焦该字段时,焦点将永远不会停留在调用blur
事件的字段上;例如,如果我有5个字段,ID分别为field1
,field2
,…field5
,并且具有以下代码:
$('input:text').blur(function(){
if ($(this).val() == "") {
$(this).css("border", "2px solid red");
$("#field4").focus();
return false;
}
});
如果我使用tab键在字段1为空时将焦点移开,则焦点将切换到#field4
,但是,如果我在字段4为空时关闭了字段4,则焦点不会保留在字段4上,而是切换到字段5。这是预期的/记录在案的行为吗?试试这样的行为
setTimeout( $(this).focus(), 500 );
setTimeout($(this).focus(),500);
希望它对您有用如果我没有弄错的话,您可以在输入真正模糊之前获得事件
发生的情况是:
- 用户从输入中单击
- 您的方法将被调用
- 该方法将焦点放在输入上
- 该方法返回
- 浏览器将模糊事件传播到“自身”并移除焦点
如果500毫秒的时间足以让浏览器完成事件传播,Sudhir的方法将起作用。(但我认为这已经足够了:)谢谢你的建议-但是,这并没有产生任何影响,仍然没有实现我想要的。。。