0

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

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");
        }
    });
}); 
4

1 回答 1

4

if大声读出你的条件。这应该可以帮助您意识到问题出在哪里:

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

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

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

“如果不是,此值等于空字符串”。再一次,更具可读性,“如果这个值等于空字符串”。您实际上想隐藏“如果此值等于空字符串”的错误。

如果您从两个条件中删除第一个否定,您的代码将起作用。

于 2013-03-21T14:09:34.880 回答