Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js验证只运行一次_Javascript_Jquery_Validation - Fatal编程技术网

Javascript js验证只运行一次

Javascript js验证只运行一次,javascript,jquery,validation,Javascript,Jquery,Validation,我在下面的代码中遇到了一个问题,如果我在其中输入了无效的电子邮件地址,它将在第一次正确显示注册警告警报,但是如果我关闭该框并尝试相同的无效电子邮件,它将不会弹出。有什么想法吗 $(document).ready(function() { //if submit button is clicked $('#submit_btn').click(function(e) { e.preventDefault(); var email = $('

我在下面的代码中遇到了一个问题,如果我在其中输入了无效的电子邮件地址,它将在第一次正确显示注册警告警报,但是如果我关闭该框并尝试相同的无效电子邮件,它将不会弹出。有什么想法吗

    $(document).ready(function() {

    //if submit button is clicked
    $('#submit_btn').click(function(e) {
        e.preventDefault();
        var email = $('#email').val();
        if (!is_valid_email(email)){
            $("#signUpWarning").show();
        }else{

            $.ajax({
                url: "process.php",
                type: "post",
                data: "email=" + email,
                success: function() {
                    $("#signUpWarning").hide();
                    $("#signUpAlert").show();
                }
            });
        }
    });
});

function is_valid_email (email)
{
    return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email);
}
警报框的代码为:

  <div class="alert alert-block alert-error hide" id="signUpWarning"><!--Use: $("#signUpWarning").show(); to show this alert-->
    <a class="close" data-dismiss="alert">×</a>
    <h5 class="alert-heading">Sorry!</h5>&nbsp;Your e-mail address was not valid, please try again.
  </div>

×
很抱歉您的电子邮件地址无效,请重试。

检查关闭警报时是否没有从DOM中删除元素


console.log($(“#注册警告”)$(“#signUpWarning”).show()之前的code>应该有助于确定是否发生了这种情况。

您能给出popu框的代码吗?也许有什么不对劲?(这个代码对我来说很好)谢谢Mat,把它添加到帖子里了。奇怪的是,它会在第一次显示警报,而不是针对随后的无效条目。此外,在一个无效条目之后,它将正确地隐藏警告并显示成功警报。只是猜测一下,但可能是您关闭警报弹出窗口的方式导致它从DOM中删除,而不是隐藏它。考虑到你所说的,在一封不合适的电子邮件之后,在一封合适的电子邮件上显示成功。此外,在显示错误之前,您还可以通过洒一个console.log(“一些信息”)来测试此代码中是否存在问题。就我个人而言,我建议使用console.log($(“#signUpWarning”))来查看元素是否如您所期望的那样存在。很好的呼叫MushinNoShin,div在第一次开火后就消失了。警报有一个X来关闭它,我将检查它是否在div上执行.remove()。这正是它所做的。jquery/bootstrap使用.remove()来消除警报-使其无法访问以供将来使用。谢谢@MushinNoShin!是的,就是这样。我正在使用jquery/bootstrap,右上角要关闭的警报框的X与.remove而不是.hide绑定。谢谢@MushinNoShin!