我有两个输入元素,一个是文本框,下一个是 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,则焦点应该位于文本框上。
感谢任何帮助。 新泽西州
最佳答案
您可以通过添加以下代码来阻止按 Tab 键的默认行为
$("#txtBox").keydown(function(event){
if($("#txtBox").val()<5)
{
if (event.keyCode == 9)
event.preventDefault();
}
})
关于javascript - 即使在 JavaScript 中设置焦点后,Tab 事件也会更改焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25085602/