验证消息不显示

时间:2018-10-11 01:27:07

标签: javascript jquery

大家好!我的问题是为什么firstNamelastName错误消息没有显示。 usernamepassword错误消息正常运行。即使passwordconfirm password错误运行正常。唯一的问题是当我的firstNamelastName为空时,没有错误消息显示。我已经下载了jQuery,并将其包含在我的head标签中。我再次检查ID名称(如果与我的HTML相同)。我觉得也一样。关于我的问题有人可以帮我吗?我将在下面向您展示我的代码!

$(function() {

  $("#firstname_errors").hide(); //hide the span tag
  $("#lastname_errors").hide(); //hide the span tag

  var error_firstnames = false;
  var error_lastnames = false;

  $("#form_firstnames").focusout(function() {
    check_firstname();
  });

  $("#form_lastnames").focusout(function() {
    check_lastname();
  });

  function check_firstname() {

    var firstname = $("#form_firstnames").val();
    if (firstname == "") {
      $("#firstname_errors").html("Firstname is empty");
      $("#firstname_errors").show();
      $("#firstname_errors").addClass("formError");
      error_firstnames = true;
    } else {
      $("#firstname_errors").hide();
    }
  }

  function check_lastname() {
    var lastname = $("#form_lastnames").val();
    if (lastname == "") {
      $("#lastname_errors").html("Lastname is empty");
      $("#lastname_errors").show();
      $("#lastname_errors").addClass("formError");
      error_lastnames = true;
    } else {
      $("#lastname_errors").hide();
    }
  }

  $("#registration_forms").submit(function() {
    error_firstnames = false;
    error_lastnames = false;
    check_firstname();
    check_lastname();

    if (error_firstname = false && error_lastname = false) {
      return true;
    } else {
      return false;
    }
  });
});
<form id=registration_forms action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  <div>
    <label for="fname">First Name: </label>
    <input type="text" name="fname" id="form_firstnames" placeholder="First Name" autocomplete="off">
    <span id="firstname_errors"></span> //error message
  </div>

  <div>
    <label for="lname">Last Name: </label>
    <input type="text" name="lname" id="form_lastnames" placeholder="Last Name" autocomplete="off">
    <span id="lastname_errors"></span> //error message
  </div>

  <div>
    <input type="submit" name="btnSave" value="Register">
  </div>
  Already a member? <a href="login.php">Login</a>
</form>

1 个答案:

答案 0 :(得分:0)

此行是错误的:

if (error_firstname = false && error_lastname = false)

它在做分配,而不是比较。将该if/else更改为:

return !error_firstnames && !error_lastnames;

$(function() {

  $("#firstname_errors").hide(); //hide the span tag
  $("#lastname_errors").hide(); //hide the span tag

  var error_firstnames = false;
  var error_lastnames = false;

  $("#form_firstnames").focusout(function() {
    check_firstname();
  });

  $("#form_lastnames").focusout(function() {
    check_lastname();
  });

  function check_firstname() {

    var firstname = $("#form_firstnames").val();
    if (firstname == "") {
      $("#firstname_errors").html("Firstname is empty");
      $("#firstname_errors").show();
      $("#firstname_errors").addClass("formError");
      error_firstnames = true;
    } else {
      $("#firstname_errors").hide();
    }
  }

  function check_lastname() {
    var lastname = $("#form_lastnames").val();
    if (lastname == "") {
      $("#lastname_errors").html("Lastname is empty");
      $("#lastname_errors").show();
      $("#lastname_errors").addClass("formError");
      error_lastnames = true;
    } else {
      $("#lastname_errors").hide();
    }
  }

  $("#registration_forms").submit(function() {
    error_firstnames = false;
    error_lastnames = false;
    check_firstname();
    check_lastname();

    return !error_firstnames && !error_lastnames;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id=registration_forms action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  <div>
    <label for="fname">First Name: </label>
    <input type="text" name="fname" id="form_firstnames" placeholder="First Name" autocomplete="off">
    <span id="firstname_errors"></span> //error message
  </div>

  <div>
    <label for="lname">Last Name: </label>
    <input type="text" name="lname" id="form_lastnames" placeholder="Last Name" autocomplete="off">
    <span id="lastname_errors"></span> //error message
  </div>

  <div>
    <input type="submit" name="btnSave" value="Register">
  </div>
  Already a member? <a href="login.php">Login</a>
</form>