【问题标题】:When the value of status is true then even the if statement is not alerting done当 status 的值为 true 时,即使 if 语句也不会提醒完成
【发布时间】:2020-06-20 20:10:02
【问题描述】:

正如您最后看到的那样,当注册成功完成时,我将状态设置为 true,但以下 if 语句现在正在工作,我不知道为什么。我到处搜索,但找不到解决方案,这就是我必须发布这个问题的原因。请有人帮助我。提前致谢!!

var status = false;

function isEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return regex.test(email);
}

$("#btn").click(function () {
  var error = "";
  var missing = "";
  var regex1 = /Email/;
  var regex2 = /Number/;

  if ($("#email").val() == "") {
    missing += "<br> Email";
  }

  if ($("#number").val() == "") {
    missing += "<br> Phone Number";
  }

  if ($("#password").val() == "") {
    missing += "<br> Password";
  }

  if ($("#passwordConfirm").val() == "") {
    missing += "<br> Confirm Password";
  }

  if (missing != "") {
    error += "Following field(s) are missing:" + missing;
  }

  if (isEmail($("#email").val()) == false && missing.match(regex1) == null) {
    error += "<p> Email address is not valid </p>";
  }

  if (
    $.isNumeric($("#number").val()) == false &&
    missing.match(regex2) == null
  ) {
    error += "<p> Phone Number is not valid </p>";
  }

  if ($("#password").val() != $("#passwordConfirm").val()) {
    error += "<p> Passwords are not matching </p>";
  }

  if (error != "") {
    $("#errorMessage").html(error);
  } else {
    $("#successMessage").show();
    $("#errorMessage").hide();
    status = true;
  }

  if (status === true) {
    alert("done");
  }
});

【问题讨论】:

标签: javascript html jquery if-statement


【解决方案1】:

这是你的工作代码。只需运行 sn -p 看看它的实际效果。

你的status 总是false 的原因是你在点击事件之外声明它。一旦您的所有输入都经过验证,status = false 就不知道在哪里更新为 true。

我总是在您的错误.html 中添加了一个.show() 函数。基本上,如果所有输入都很好,errorMessage 元素将隐藏并且如果用户再次从输入中删除 a 值 - div 设置为 hide() 因此我们需要在同一元素上再次显示错误。

基本上它不在click事件scope

$("#btn").on('click', function() {
  var status = false;
  var error = "";
  var missing = "";

  if (!$("#email").val()) {
    missing += "<br> Email";
  }

  if ($("#number").val() == "") {
    missing += "<br> Phone Number";
  }

  if (missing != "") {
    error += "Following field(s) are missing:" + missing;
  }

  if (error != '') {
    $("#errorMessage").html(error).show();
  } else {
    $("#errorMessage").hide();
    status = true;
  }

  if (status == true) {
    alert("done");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" id="email" />

<input type="text" id="number" />

<button id="btn">Click Me</button>

<div id="errorMessage"></div>

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2020-09-06
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 2019-08-26
    • 2023-04-07
    相关资源
    最近更新 更多