为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇潇雨雨 2022-10-13 16:09:05
正如您最后看到的那样,当注册成功完成时,我将状态设置为 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");  }});
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

这是你的工作代码。只需运行代码片段就可以看到它的实际效果。


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


我总是.show()为您的错误添加了一个功能.html。基本上,如果所有输入都很好,则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>


查看完整回答
反对 回复 2022-10-13
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信