输入字段模糊时,验证字段,如果无效则取消模糊事件

on blur of input field validate field and cancel blur event if not valid

本文关键字:模糊 字段 取消 事件 无效 验证 输入 如果      更新时间:2023-09-26

我正在验证模糊事件中的一个字段,如果该字段无效,我希望焦点保持在同一个字段中,而不是转到下一个字段。当我在模糊函数中执行$(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却不允许。