当 status 的值为 true 时,即使 if 语句也不会提醒完成

正如您最后看到的那样,当注册成功完成时,我将状态设置为 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");

  }

});


潇潇雨雨
浏览 121回答 1
1回答

Smart猫小萌

这是你的工作代码。只需运行代码片段就可以看到它的实际效果。status你总是的原因false是你在点击事件之外声明它。一旦您的所有输入都经过验证,status = false 不知道在哪里更新为 true。我总是.show()为您的错误添加了一个功能.html。基本上,如果所有输入都很好,则errorMessage元素将隐藏,并且如果用户再次从输入中删除 a 值 - div 设置为hide()因此我们需要在同一元素上再次显示错误。基本上它不在click事件中scope$("#btn").on('click', function() {&nbsp; var status = false;&nbsp; var error = "";&nbsp; var missing = "";&nbsp; if (!$("#email").val()) {&nbsp; &nbsp; missing += "<br> Email";&nbsp; }&nbsp; if ($("#number").val() == "") {&nbsp; &nbsp; missing += "<br> Phone Number";&nbsp; }&nbsp; if (missing != "") {&nbsp; &nbsp; error += "Following field(s) are missing:" + missing;&nbsp; }&nbsp; if (error != '') {&nbsp; &nbsp; $("#errorMessage").html(error).show();&nbsp; } else {&nbsp; &nbsp; $("#errorMessage").hide();&nbsp; &nbsp; status = true;&nbsp; }&nbsp; if (status == true) {&nbsp; &nbsp; alert("done");&nbsp; }});<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>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript