为什么我的函数返回undefined?

时间:2016-11-10 03:35:41

标签: javascript jquery function undefined

当我期望它返回false或true时,函数validate()返回undefined。为什么会这样?现在我只是输入这个,因为stackoverflow不会让我发布这个问题,因为它主要是代码。

function validate() {
  var isFormValid = false;

  var emailValid = false;
  var inputValid = false;
  var passValid = true;

  //VALIDATE EMAIL
  var emailInput = $("input[type='email']");
  $.get("/checkEmail", {
    email: emailInput.val()
  }, function(data) {
    if (data.userExists) {
      emailInput.removeClass("valid");
      emailInput.addClass("invalid");
      return false;
    } else {
      emailValid = true;
      emailInput.removeClass("invalid");
      emailInput.addClass("valid");
    }

    if (passValid && emailValid && inputValid) {
      return true;
    }
  });

  //ADD VALID CLASS TO INPUTS
  var inputs = $("input,textarea");
  inputs.each(function() {
    if ($(this).val() != "") {
      inputValid = true;
      $(this).removeClass("invalid");
      $(this).addClass("valid");
    } else {
      $(this).removeClass("valid");
      $(this).addClass("invalid");
      return false;
    }
    if (passValid && emailValid && inputValid) {
      return true;
    }
  });

  //VADIDATE PASSWORD
  var pass = $("input[name='password']");
  var repass = $("input[name='repassword']");
  if (pass.val() != repass.val()) {
    passValid = false;
    repass.removeClass("valid");
    repass.addClass("invalid");
    return false;
  }

}

$(document).ready(function() {
  $("#registerForm").submit(function(event) {
    console.log(validate());
    if (!validate()) {
      event.preventDefault();
    }

  });
});

1 个答案:

答案 0 :(得分:0)

$.get()返回validate;在true链接到false来电时返回.then()$.get();在.then()调用时使用.fail().submit()来处理来自.then()的{​​{1}}返回的承诺值

validate