jQuery实时验证

时间:2013-03-21 14:06:14

标签: javascript jquery

我正在尝试为表单创建实时验证脚本。我有点得到它,我想无论如何......但是当字段中有文本而不是没有文本时,会出现错误消息。我确定我做了一些愚蠢的错误,我很确定我的if值是正确的,value == ''如果值是什么,value !== ''是值,如果值不是什么,对吧? Gah,也许这是我应该改变的改变?希望你能帮忙。谢谢。

http://jsfiddle.net/Vjwxs/3/

$(document).ready(function () {    
    $('#name').on('change', function() {
        var name = $("#name").val();
        if (!this.value == '') {
            $("#errorname").fadeIn();
            $('#errorname').css("display", "inline-block");
            $('#errorname').css("color", "#838383");
            $('#errorname').css("background-color", "#fff568");
        }
        else if (!this.value !== '' ) {
            $("#errorname").fadeOut();
            $('#errorname').css("display", "none");
        }
    });
}); 

1 个答案:

答案 0 :(得分:4)

大声阅读if条件。这应该可以帮助您了解问题所在:

if (!this.value == '') { /* Show the error */ }

“如果,则此值等于空字符串”。或者,以更易理解的形式,“如果此值等于空字符串”。您实际上想要显示错误“如果此值 等于空字符串”。

if (!this.value !== '' ) { /* Hide the error */ }

“如果,则此值等于空字符串”。而且,更具可读性,“如果此值等于空字符串”。您实际上想要隐藏错误“如果此值等于空字符串”。

如果remove the first negation from both conditions,您的代码将有效。