【问题标题】:Function Pop Up appears twiceFunction Pop Up 出现两次
【发布时间】:2018-06-06 09:04:59
【问题描述】:

早上好!

我在我的网站上实施了以下措施,以防止用户在未检查验证码的情况下提交表单。它工作得很棒,但我遇到的问题是相同的警报消息出现了两次。弹出一次,关闭它,然后它第二次弹出,当您第二次关闭消息时它仍然消失。我希望它在用户第一次关闭它时保持消失,而不是第二次。有什么建议吗?

<script>jQuery(document).ready(function(jQ){
  jQ('#login_form').submit(function(event) {
     var recaptcha = jQ("#g-recaptcha-response").val();
     if ( recaptcha === "" ) {
        event.preventDefault();
        alert("Please check the recaptcha");
     }
  });
});</script>

【问题讨论】:

    标签: php jquery forms function recaptcha


    【解决方案1】:

    你试过了吗

    event.stopPropagation()
    

    【讨论】:

    • 如果我改变 event.preventDefault();到 event.stopPropagation();当用户单击确定以关闭(仍然两次)消息时,它允许他们绕过检查标记验证码。
    • 这个事件总是被调用两次吗?
    • 是的,到目前为止,无论我做什么,“请检查recaptcha”的消息都会出现两次。它以我希望的方式工作,以防止用户在未验证验证码的情况下提交表单,但如果没有检查验证码,则必须关闭警报消息两次。
    • 所以也许只显示一次这个警报,并设置一些标志变量以防止第二次显示它
    • 对我应该尝试防止它第二次出现的变量有什么建议吗?
    【解决方案2】:

    通过添加 val1.value = ""; 解决了我自己的问题:

    <script>jQuery(document).ready(function(jQ){
      jQ('#login_form').submit(function(event) {
         var recaptcha = jQ("#g-recaptcha-response").val();
         if ( recaptcha === "" ) {
            event.preventDefault();
            alert("Please check the recaptcha");
            val1.value = "";
         }
      });
    });</script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 2013-12-31
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多