【问题标题】:Why does an alert redirect my page?为什么警报会重定向我的页面?
【发布时间】:2013-09-13 05:29:22
【问题描述】:

为什么每次我向我的 ajaxform 发出警报时,页面都会重定向到它的 php 脚本?但是当我删除警报时,ajax 不会重定向它。我不希望我的页面重定向到它的 php 脚本。

$(document).ready(function(){
           $("#save").click(function(){
           $("#f1").ajaxForm({
                    alert("Submit Successful!");
                    });//ajaxform
    });
});

【问题讨论】:

  • 使用 return false;警报后
  • 因为那不是正确的语法。尝试使用回调

标签: javascript php jquery ajax


【解决方案1】:

替换

$("#save").click(function(){

$("#save").click(function(e){
   e.preventDefault();

将事件作为参数传递并使用event.preventDefault(),因此页面不会被重定向。

Official Document

【讨论】:

    【解决方案2】:

    你没有正确使用几个东西。试试这个:

    $(document).ready(function() {
        $("#save").click(function(e) {
            e.preventDefault(); //cancel default action (not strictly necessary...)
    
            $("#f1").ajaxForm(function() { //N.B. 'function() ' added - before it was an object!
                alert("Submit Successful!");
            });
        });
    });
    

    【讨论】:

      【解决方案3】:

      尝试停止默认事件行为。

       $("#save").click(function(e){ 
          e.preventDefault();
      

      【讨论】:

        【解决方案4】:

        使用return false: 停止对服务器的请求

        $(document).ready(function () {
             $("#save").click(function () {
                 $("#f1").ajaxForm(function(){
                     alert("Submit Successful!");
                     return false;//add return false to stop the request to server
                 }); //ajaxform
             });
         });
        

        【讨论】:

          【解决方案5】:

          这是正常行为(如果单击的元素是指向另一个页面的锚标记):您单击一个链接,它会重定向您的页面。
          如果您想将该链接用作按钮并将某个操作绑定到它,您绝对应该停止该链接的正常行为:防止它重定向页面。
          这可以通过多种方式实现,但最好的方式(至少从语义的角度来看)是在实际点击事件上调用preventDefault 方法:

          $('a').on('click', function(event){
              // prevents the normal behavior of this "click" action
              // in this case, it prevents the link from changing the url
              event.preventDefault();
          
              //.. your logic here
          });
          

          【讨论】:

            【解决方案6】:

            添加preventDefault()return false;

            $("#save").click(function(e) {
                $("#f1").ajaxForm({
                    alert("Submit Successful!");
                });//ajaxform
                e.preventDefault();
                //or
                return false;
            });
            

            【讨论】:

            【解决方案7】:

            试试这个使用 preventDefault()

            $(document).ready(function(){
            
                $("#save").click(function(e){
                   //Stay in the same page
                   e.preventDefault();
            
                    $("#f1").ajaxForm({
            
                        alert("Submit Successful!");
            
                    });//ajaxform
            
                });
            
            });
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-10-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多