Javascript 输入字段模糊时,验证字段,如果无效,则取消模糊事件
我正在验证模糊事件的字段。如果字段无效,我希望焦点保持在同一个字段中,而不是转到下一个字段。当我在blur函数中执行Javascript 输入字段模糊时,验证字段,如果无效,则取消模糊事件,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我正在验证模糊事件的字段。如果字段无效,我希望焦点保持在同一个字段中,而不是转到下一个字段。当我在blur函数中执行$(this).focus()时,它只在Chrome中有效,在Firefox中无效。我尝试了settimeout函数,但问题是焦点转到下一个字段(#myInput2),然后返回到字段(#myInput1)。我不希望,因为下一个字段也会引发错误,因为它将再次模糊,它是空的。在Firefox中有没有解决这个问题的方法?? 我的代码: $('#myInput1').blur(functi
$(this).focus()
时,它只在Chrome中有效,在Firefox中无效。我尝试了settimeout函数,但问题是焦点转到下一个字段(#myInput2),然后返回到字段(#myInput1)。我不希望,因为下一个字段也会引发错误,因为它将再次模糊,它是空的。在Firefox中有没有解决这个问题的方法??我的代码:
$('#myInput1').blur(function () {
if (!validField1($(this).val())) {
alert("Invalid");
$(this).focus(); // Does not work in FF
}
});
$('#myInput2').blur(function () {
if (!validField2($(this).val())) {
alert("Invalid");
$(this).focus();
}
});
我曾经问过这个问题,这些通常都是浏览器的功能,不会将用户锁定在一个输入框中。用户应该有选择离开,如果他们想,无论它是否有效 因此,不允许在模糊事件后聚焦同一元素 编辑:
chrome浏览器似乎允许这样的行为,但firefox和internet explorer不允许这样的行为。只是一个旁注,
$('myInput2')
不是选择器,它是选择器——但因为它会选择带有标记名myInput2
的元素,所以在HTML文档中找不到太多;-)结合setTimeout方法,您可以尝试禁用以下输入字段(当当前字段接收到焦点时,可以提前禁用),以便它们无法接收焦点。浏览器不一致!但是,您应该避免不惜一切代价将焦点锁定到某个元素。