验证函数错误,未定义的'长度'

时间:2016-10-08 07:58:07

标签: javascript jquery

我正在制作验证函数,submitForm函数是检查其他函数的返回值是true还是false,但是我有这个错误,我不知道为什么。

  

未捕获的TypeError:无法读取未定义的属性“长度”

var ClassSignUpValidation = function (){};

ClassSignUpValidation.prototype.CheckName = function (_target)
{
    return false;
}

ClassSignUpValidation.prototype.CheckPassword = function (_target)
{
    return false;
}

//SUBMIT FORM VALIDATION
ClassSignUpValidation.prototype.SubmitForm = function (event)
{
  var sumbit_errorspan = $("#submit-errorResult");
  //array validation function
       var validators = [this.CheckName, this.CheckPassword];
       // bypass all function
       var valid = validators.reduce(function(valid, validator){
       return validator() && valid;
       }, true);

       if(valid){
       sumbit_errorspan.html('');
       }else{
       sumbit_errorspan.css('color', 'red');
       sumbit_errorspan.html('sumbit not requirements.');
       }
       return valid;
}

错误点

   ClassSignUpValidation.prototype.CheckName = function (_target)
    {
      //set target id to jquery
      _target = "#" + _target;

      //set variable
      var username_target = $(_target);
      var username_value = username_target.val();
      var username_errorspan = $("#user-errorResult");

    ****//here is the error****
    if (username_value.length >= 4){
       $.ajax({
        type:"POST",
        url:"/main/class/classvalidation.php",
        async:false,
        data:{
        "username": username_value
        },
        success: function(data)
        {
          var usernameAvailable = JSON.parse(data);
          var color = usernameAvailable.exists ? "#dfe0e6" : "red";
          username_errorspan.html(usernameAvailable.message);
          username_errorspan.css("color", color);
          username_target.css("border-color", color);
          if(usernameAvailable.exists === true){
            return true;
          }
        }
      });
    };

    return false;
    }
这里的

错误是

中的错误点
    if (username_value.length >= 4){

1 个答案:

答案 0 :(得分:0)

您的IF语句应如下所示:

username_value && username_value.length >= 4

这样你就可以确定有一个值(以及一个元素),并且它的长度大于4。