模糊()最后一个表单字段后的jQuery焦点

时间:2011-12-27 12:06:53

标签: jquery blur

以下代码应该在模糊最后一个之后聚焦第一个表单元素,但这不会发生:

<script>
$(document).ready(function(){
  $("#last").blur(function(){
     $("#first").focus();
  });
});
</script>
<form>
<input type="text" name="first" id="first"><br><br>
<input type="text" name="last" id="last">
</form>

如果我在#last之后添加另一个表单元素,它正常工作,请参阅下面的

<script>
$(document).ready(function(){
  $("#last").blur(function(){
     $("#first").focus();
  });
});
</script>
<form>
<input type="text" name="first" id="first"><br><br>
<input type="text" name="last" id="last">
<input type="text" name="dummy">
</form>

3 个答案:

答案 0 :(得分:1)

这是一个针对您的修复程序,它正在运行here

$(document).ready(function(){
  $("#last").blur(function(){
     $("#first").focus();
  });
    $("#last").keydown(function(e) {
         if(e.keyCode == 9) {
            $("#first").focus();
            return false;
        }
    });
});

答案 1 :(得分:1)

正如@Deleteman在评论中所说:

  

如果我点击第二个字段,它对我有用,而不是如果我选中,   但我认为这是因为有了标签,它最终会跳进另一个标签   帧。

他是对的,我有一个解决方案。

这是安全的解决方案:

$(document).ready(function(){
    $("#last").keydown(function(e){
        if(e.keyCode==9)
        {
            e.preventDefault();
            $("#first").focus();
        }
    });
  $("#last").blur(function(e){
     $("#first").focus();
  });
});

演示: http://jsfiddle.net/uGudk/

答案 2 :(得分:-1)

thow this它工作正常可能你没有在你的代码中包含jquery