如何使用jQuery和JavaScript防止文本域失去焦点?

前端之家收集整理的这篇文章主要介绍了如何使用jQuery和JavaScript防止文本域失去焦点?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个textfield< input type =“text”/>当焦点丢失时我想验证.如果输入无效,我想防止焦点移动到下一个元素,或者换句话说,将焦点保持在无效输入,直到它有效.

我怎么能用jQuery和JavaScript做到这一点?

我已尝试使用此代码,但它不起作用(jsFiddle):

<!DOCTYPE html>
<html>
<head>
<script src="jquery-1.6.2.min.js"></script>
<script>
$(function() {
    $('.hello').bind('focusout',function(e) {
        if(!isValid($(this).val())) {
            e.preventDefault();
            $(this).foucus();
        }
    });
});

    function isValid(str) {
        if(str === "hello") {
            return true;
        } else {
            return false;
        }
    }
</script>
</head>
<body>
Only valid content: <b>hello</b><br>
<input type="text" class="hello"/>
<button>Dummy</button>
</body>
</html>

解决方法

这只是一个错字.更改:
$(this).foucus();

至:

$(this).focus();

此外,您可能希望通过在文本框中调用select来更轻松地让用户更正错误.这样,他们可以再次开始输入以更改值:

$(this).focus().select();

这是一个working example.

注意:这个答案解决了手头的问题,即问题.在更广泛的范围内,我同意那些说不应该将用户锁定在某个领域的人.更好的方法是在提交时验证整个表单,让用户看到所有问题并立即修复它们,而不是在整个过程中对它们进行窃听.

原文链接:https://www.f2er.com/jquery/177878.html

猜你在找的jQuery相关文章