Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入字段模糊时,验证字段,如果无效,则取消模糊事件_Javascript_Jquery_Javascript Events - Fatal编程技术网

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

Javascript 输入字段模糊时,验证字段,如果无效,则取消模糊事件,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我正在验证模糊事件的字段。如果字段无效,我希望焦点保持在同一个字段中,而不是转到下一个字段。当我在blur函数中执行$(this).focus()时,它只在Chrome中有效,在Firefox中无效。我尝试了settimeout函数,但问题是焦点转到下一个字段(#myInput2),然后返回到字段(#myInput1)。我不希望,因为下一个字段也会引发错误,因为它将再次模糊,它是空的。在Firefox中有没有解决这个问题的方法?? 我的代码: $('#myInput1').blur(functi

我正在验证模糊事件的字段。如果字段无效,我希望焦点保持在同一个字段中,而不是转到下一个字段。当我在blur函数中执行
$(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方法,您可以尝试禁用以下输入字段(当当前字段接收到焦点时,可以提前禁用),以便它们无法接收焦点。浏览器不一致!但是,您应该避免不惜一切代价将焦点锁定到某个元素。