Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用jQuery将焦点指定给特定字段_Javascript_Jquery - Fatal编程技术网

Javascript 无法使用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()没有将

我正在用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,则焦点不会保留在字段4上,而是切换到字段5。这是预期的/记录在案的行为吗?

试试这样的行为

setTimeout( $(this).focus(), 500 ); setTimeout($(this).focus(),500);
希望它对您有用

如果我没有弄错的话,您可以在输入真正模糊之前获得事件

发生的情况是:

  • 用户从输入中单击
  • 您的方法将被调用
  • 该方法将焦点放在输入上
  • 该方法返回
  • 浏览器将模糊事件传播到“自身”并移除焦点

如果500毫秒的时间足以让浏览器完成事件传播,Sudhir的方法将起作用。(但我认为这已经足够了:)

谢谢你的建议-但是,这并没有产生任何影响,仍然没有实现我想要的。。。