【问题标题】:Redirect only after confirmation仅在确认后重定向
【发布时间】:2013-09-17 14:17:25
【问题描述】:

我想让用户点击一个链接,然后弹出一个带有是或否选项的 javascript 弹出窗口,但如果是,则重定向到不同的 url,如果不是,则留在同一页面上。 我尝试了下面的代码,但在选择是或否时它会将我带到同一页面。

function YNconfirm() { 
 if (window.confirm('Really go to another page?'))
{
    alert("You agree") 
window.location.href = (http:///mediclaim_portal/logout2.php');
}
else
{
window.location.href = (this.document);
}};
</script>

then 
<a href="\mediclaim_portal/logout2.php" onclick="YNconfirm()">Home</a>

【问题讨论】:

  • 您似乎忘记了 if 块第一部分中 url 之前的 '。而且我认为您只需要http:// 而不是http:///。此外,如以下答案所述返回 false 将有所帮助。

标签: javascript php


【解决方案1】:
function YNconfirm() { 
 if (window.confirm('Really go to another page?'))
 {
   alert("You agree") 
   window.location.href = 'http:///mediclaim_portal/logout2.php';
 }
}

然后

<a href="/mediclaim_portal/logout2.php" onclick="YNconfirm(); return false;">Home</a>

【讨论】:

    【解决方案2】:

    在运行您的点击处理程序后,浏览器正在导航到该链接。

    您应该将您的处理程序更改为简单的return false 以取消导航,而不是设置location

    【讨论】:

      【解决方案3】:

      如果在 onclick 事件中运行的代码没有返回 false,则会发生 href。 即,尝试这样的事情:

      function YNconfirm() { 
          if (window.confirm('Really go to another page?'))
          {
              alert("You agree");
              return true;
          }
          else
              return false;
      };
      </script>
      <a href="\mediclaim_portal/logout2.php" onclick="return(YNconfirm());">Home</a>
      

      【讨论】:

        【解决方案4】:

        就这样吧;)

        <script type="text/javascript">   
        function YNconfirm() { 
             if (window.confirm('Really go to another page?')){
                 alert("You agree") 
                 //REDIRECT
                 window.location.href = (http://mediclaim_portal/logout2.php');
             }
             else{
                //DO NOTHING AND STAY IN THE SAME PAGE
                //OR SOMETHING ELSE THAT YOU WANT
        
                return false;
             }
        };
        </script>
        <!-- IMPORTANT, dont link your 'a', or it will always be submited -->
        <a href="javascript:void(0);" onclick="YNconfirm();">Home</a>
        

        【讨论】:

          【解决方案5】:
          ## Try this for all url ##
          
          <a href="https://code.jquery.com">Click Here</a>     
                 <script type="text/javascript">
                    $(document).ready(function(){
                      $('a').click(function(){
                        //get a href url
                        var url = $(this).attr('href');
                        //check condition for redirection
                        var answer = confirm("Leave From this page");
                        if (answer){
                          document.location.href = url;
                        }else{
                         alert("Thanks for sticking around!");
                         return false;
                        }
                      });
                    });
                  </script>
          

          【讨论】:

            【解决方案6】:
            <a href="http://mediclaim_portal/logout2.php" onclick="YNconfirm(this, event)">Home</a>
            

            然后编写jquery脚本如下

            <script>
             function YNconfirm(el,ev){
                var confirm = window.confirm("Really go to another page?");
                if(confirm){
                    window.location.href = $(el).attr("href");
                }else{
                    ev.preventDefault();
                }
             }
            </script>
            

            【讨论】:

              【解决方案7】:

              我知道这不是 codegolf,但这是我通常采用的解决方案(更具可读性):

              <a onclick="if(confirm("Want to go to the new page?)){location.href = "bla.newpage.bla"}}
              

              虽然“onclick return true”有效,但它需要关于 onclick 和 href 标签如何交互的内部知识。我发现我的方式更容易(特别是如果你经常在 C#、JS、SQL 等之间跳跃)

              【讨论】:

                【解决方案8】:

                实际上window.confirm 根据我们的选择返回一个boolean

                这可能会有所帮助: How to display a confirmation dialog when clicking an <a> link?

                我们可以这样做:

                <a href="delete.php?id=22" onclick="return confirm('Are you sure?')">Link</a>
                

                【讨论】:

                  【解决方案9】:

                  最好的方法是像这样使用函数的返回值

                  function YConfirm(
                  if (window.confirm('Really go to another page?')){
                       return true;
                   }
                   return false;
                  )
                  

                  现在只需像这样调用这个函数。

                  <a href="http://mediclaim_portal/logout2.php" onclick="return YConfirm();">Home</a>
                  

                  现在您不需要使用 javascript 重定向页面。

                  【讨论】:

                    猜你喜欢
                    • 2021-06-02
                    • 1970-01-01
                    • 2018-04-19
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多