我正在使用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();
并未将注意力集中在当前字段上 - 是否有理由不允许这样做,或者我错过了什么?
更新
我一直在玩这个代码;当我尝试通过其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上,而是切换到字段5.这是预期/记录的行为吗?
答案 0 :(得分:0)
尝试类似的事情;
setTimeout( $(this).focus(), 500 );
希望它适合你
答案 1 :(得分:0)
如果我没有弄错的话,你会在输入真的模糊之前得到这个事件。
会发生什么:
如果500ms有足够的时间让浏览器完成事件传播,则Sudhir的方法将起作用。 (但我认为这已经够了:))