-1

调用 validateName 时如何访问 jquery 对象?

在我下面的代码中,errorDate不是 JQuery 对象。

更正变量名

$(document).ready(function() {
    var errorDate = $("#errorDate");
    errorDate.blur(validateName);

    function validateName() {
        if (errorDate.val().length == "") {
            errorDate.addClass("error");
            return false;
        }
        else {
            errorDate.removeClass("error");
            return true;
        }
    }  
});
4

3 回答 3

5

只需使用$(this)而不是name.

于 2013-06-14T05:57:44.073 回答
2

你可以

$(document).ready(function() {
    var errorDate = $("#errorDate");
    errorDate.blur(validateName);

    function validateName() {
        var $this = $(this);
        if ($this.val().length == "") {
            $this.addClass("error");
            return false;
        }
        else {
            $this.removeClass("error");
            return true;
        }
    }  
});

或者使用errorDate代替,name因为它是一个闭包变量

$(document).ready(function() {
    var errorDate = $("#errorDate");
    errorDate.blur(validateName);

    function validateName() {
        if (errorDate.val().length == "") {
            errorDate.addClass("error");
            return false;
        }
        else {
            errorDate.removeClass("error");
            return true;
        }
    }  
});
于 2013-06-14T05:58:03.383 回答
2

尝试这个,

$(document).ready(function() {
    var errorDate = $("#errorDate");
    errorDate.blur(validateName);

    function validateName() {
        // no need to get length you can use $(this).val()==""
        if ($(this).val() == "") {
            $(this).addClass("error");
            return false;
        }
        else {
            $(this).removeClass("error");
            return true;
        }
    }  
});

小提琴http://jsfiddle.net/jtWFX/

于 2013-06-14T06:01:42.793 回答