即使在javascript中设置焦点后,Tab事件也会更改焦点

时间:2014-08-01 17:29:09

标签: javascript jquery html

我在HTML页面中有两个输入元素,一个是文本框,另一个是下拉列表(ddl)。用户应输入大于5的值(仅作为示例),然后从ddl中选择一个项目。

我写了一个验证,只要文本框发生变化就会发生。如果该值不大于5,则通知用户该值应大于5并且焦点设置为文本框。 (我正在使用Jquery)

$(".textBox").change( function(){
  alert("Quantity should be greater than 5");
  $(this).val("");
  $(this).focus();  
}

现在问题就在于此,

案例1: 当用户输入低于5的值并按逻辑方式按Tab键时,焦点应在警报后返回到文本框,但焦点似乎已移至下拉列表。

案例2: 当用户输入低于5的值并单击下拉列表时,会出现一条警告消息,但下拉列表已经扩展,而不是焦点位于文本框中。

我想知道为什么会发生这种情况以及如何修复它,以便如果该值小于5,则焦点应该放在文本框上。

感谢任何帮助。 毫微

1 个答案:

答案 0 :(得分:1)

您可以通过添加以下代码

来阻止按Tab键的默认行为
$("#txtBox").keydown(function(event){
  if($("#txtBox").val()<5)
    {
    if (event.keyCode == 9) 
    event.preventDefault();

    }
})