首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >隐藏函数jquery不工作。

隐藏函数jquery不工作。
EN

Stack Overflow用户
提问于 2013-09-03 15:56:48
回答 4查看 110关注 0票数 2

这段代码用于在函数valid_name不为真时显示错误,并在valid_name模糊时隐藏错误;错误显示在最初隐藏的div中。出现错误,但不会消失。

代码语言:javascript
代码运行次数:0
运行
复制
function valid_name() {
    if (($("#name").length > 5) && ($("#name").length < 20)) {
        return true;
    } else {
        return false;
    }
}

 $(document).ready(function() {
    $('#name').on('blur', function() {
        if (!valid_name())
            $("#name_erors").text("invalid name").show();
        if (valid_name())
            $("#name_erors").hide();

    });
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-03 15:58:07

我认为

代码语言:javascript
代码运行次数:0
运行
复制
$("#name").length

应该

代码语言:javascript
代码运行次数:0
运行
复制
$("#name").val().length

因为$('#name').length计数找到的元素,但是要计算您需要使用的字符

代码语言:javascript
代码运行次数:0
运行
复制
$("#name").val().length

所以功能应该是

代码语言:javascript
代码运行次数:0
运行
复制
function valid_name() {
    if (($("#name").val().length > 5) && ($("#name").val().length < 20)) {
        return true;
    } else {
        return false;
    }
}

你也可以

代码语言:javascript
代码运行次数:0
运行
复制
function valid_name() {
    var value = $('#name').val(), len = value.length;
    return len > 5 && len < 40;
}
票数 5
EN

Stack Overflow用户

发布于 2013-09-03 16:01:07

使用jQuery进行选择时,返回的对象包含元素。在这种情况下,只有一个,所以length总是1,您可能要选择值的长度。

尽管如此,这里有一个全优化香草JS解决方案:

代码语言:javascript
代码运行次数:0
运行
复制
document.getElementById('name').onblur = function() {
    var notice = document.getElementById('name_errors');
    if( this.value.length > 5 && this.value.length < 20) notice.style.display = "none";
    else {
        notice.style.display = "block"; // or "inline", as applicable
        notice.innerHTML = "Invalid name length (must be between 6 and 19 characters)";
    }
};

应将此代码放在以下两种方式之一:

  • name元素之后的任何位置
  • 在具有defer属性的脚本块中
  • window.onload处理程序中
票数 2
EN

Stack Overflow用户

发布于 2013-09-03 15:58:36

我认为您的函数总是返回false。试试看

代码语言:javascript
代码运行次数:0
运行
复制
function valid_name() {
        if (($("#name").val().length > 5) && ($("#name").val().length < 20)) {
            return true;
        }
        else {
            return false;
        }
    }

 $(document).ready(function() {
            $('#name').on('blur', function() {
                if (!valid_name())
                    $("#name_erors").text("invalid name").show();
                if (valid_name())
                    $("#name_erors").hide();

            });
        });

.val()给出输入字段的值,您应该检查值的长度。

$('#name').length将返回具有id名称的元素数,这肯定小于5。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18596614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档