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

如果提交,确认电子邮件不会删除验证消息,但表单的其他元素需要完成

如果提交,确认电子邮件不会删除验证消息,但表单的其他元素需要完成

守着星空守着你 2022-05-14 14:51:42
当我尝试验证电子邮件时,我的 javascript 遇到了一些问题。验证本身工作正常,但它是我遇到问题的消息。基本上,如果用户在电子邮件字段中输入了不正确的电子邮件格式,并且在确认电子邮件中输入了不匹配的电子邮件,它会显示两个字段的验证,这很好。如果我随后输入了有效的电子邮件但仍然不匹配,则会删除电子邮件验证并保留确认密码验证,这也很棒。但是假设我修复了确认密码并提交了,但我没有完成表单中的所有组件,我至少希望确认电子邮件验证消息会消失,因为它是正确的,但它仍然存在。当我完成所有表单并提交时,表单会通过,但是如果用户尝试提交并且要完成表单的其他区域但不必担心确认电子邮件,则只是此消息应该消失。是什么导致此消息保留而所有其他字段都需要有效? function validateEmail(email) {      var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;      return re.test(email);    }        function validate() {      var $result = $("#resultEmail");      var $confirmResult = $("#resultConfirmEmail");      var email = $("#email").val();      var confirmEmail = $("#confirmEmail").val();      $result.text("");          if (validateEmail(email)) {        if (email == confirmEmail) {          return true;      } else {        $confirmResult.text("Your email and confirm email do not match");        $confirmResult.css("color", "red");      }        } else {        $result.text(email + " is not a valid email address");        $result.css("color", "red");            }          return false;    }        $(".buynow").on("click", validate);          <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><form id="tcform">              <p>            <b>Attach your CV:</b> (.doc, .docx, .pdf, .txt, .rtf)            </p>                <input type="file" id="uploadCV"  />                <br/><br/>                <div class="formcontainer">            <label for="email"><b>Email:</b></label>            <input type="input" id="email" name="email" required />                <p id="resultEmail"></p>                <br/><br/>            <label for="email"><b>Confirm Email:</b></label>            <input type="input" id="confirmEmail" name="confirmEmail" required />            </button></form>
查看完整描述

2 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

如果你在它之前添加return true;它应该被修复。

$confirmResult.text("");


查看完整回答
反对 回复 2022-05-14
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

我认为如果您使用 jquery 验证库,它将很容易解决您的问题。


https://jqueryvalidation.org/documentation/


这是确认密码的示例。


<script>

    function validatePassword() {

        var validator = $("#loginForm").validate({

            rules: {

                password: "required",

                confirmpassword: {

                    equalTo: "#password"

                }

            },

            messages: {

                password: " Enter Password",

                confirmpassword: " Enter Confirm Password Same as Password"

            }

        });

        if (validator.form()) {

            alert('Sucess');

        }

    }


</script>


<form method="post" id="loginForm" name="loginForm">

        <table cellpadding="0" border="1">

            <tr>

                <td>Password</td>

                <td><input tabindex="1" size="40" type="password" name="password" id="password" /></td>

            </tr>

            <tr>

                <td>Confirm Password</td>

                <td><input tabindex="1" size="40" type="password" name="confirmpassword" id="confirmpassword" /></td>

            </tr>

            <tr>

                <td colspan="2" align="center"><input tabindex="3" type="button" value="Submit" onClick="validatePassword();" /></td>

            </tr>

        </table>

 </form>


查看完整回答
反对 回复 2022-05-14
  • 2 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号