【问题标题】:Ajax Post not working in Mozilla FirefoxAjax Post 在 Mozilla Firefox 中不起作用
【发布时间】:2015-08-29 07:27:31
【问题描述】:

我有一个站点,当用户单击更新时,我将所有需要更新的值发送到运行 UPDATE 数据库查询的 php 页面。我使用 Ajax 将数据传输到 php 页面。该更新在 Chrome 和 Internet Explorer 中有效,但在 Mozilla 中无效。我运行了 firebug 并意识到甚至没有向服务器发出请求,我真的不知道为什么

这是我的 Ajax 代码

$(function() {
            $("#editGameBtn").click(function(){
                var gameId = $('#editGameId').val();
                var newTime = $('#editTime').val();
                var newDate = $('#editDate').val();
                var newGround = $('#editGround').val();
                var newHomeTeam = $('#editHomeTeam').find(":selected").text();
                var newAwayTeam = $('#editAwayTeam').find(":selected").text();

                   if(gameId === "" || newTime === "" || newDate === "" || newGround === ""|| newHomeTeam === ""|| newAwayTeam === "" )
                   {
                       alert("Please Select A game to Edit");
                   }
                    else{
                        $.ajax({
                            type: "POST",
                            url: "updateGame.php",
                           data: { gameId: gameId , newTime: newTime, newDate: newDate, newHomeTeam: newHomeTeam, newAwayTeam: newAwayTeam, newGround: newGround}
                          }).done(function(msg) {
                                alert( "Data Saved: " + msg );
                          });
                    }

            });
        });

【问题讨论】:

  • 尝试使用 async:false 和 dataType:"html"
  • 控制台有错误吗?您可以将alert("clicked"); 作为按钮单击事件侦听器的第一条语句吗?
  • Niranjan - 试过了,但没用 Burton - 点击事件监听器工作正常,即使 if 语句也在工作,它只是 ajax 部分没有

标签: php ajax mozilla


【解决方案1】:

想出了一种方法来修复它,但并不真正知道错误是什么以及解决方案修复它的原因。希望有人可以解释我所做的更改是如何修复错误的。无论如何,所以我所要做的就是 preventDefault 并且一切正常。

这是代码的工作版本

$(function() {
    $("#editGameBtn").click(function(e){
        var gameId = $('#editGameId').val();
        var newTime = $('#editTime').val();
        var newDate = $('#editDate').val();
        var newGround = $('#editGround').val();
        var newHomeTeam = $('#editHomeTeam').find(":selected").text();
        var newAwayTeam = $('#editAwayTeam').find(":selected").text();
        e.preventDefault();
           if(gameId === "" || newTime === "" || newDate === "" || newGround === ""|| newHomeTeam === ""|| newAwayTeam === "" )
           {
               alert("Please Select A game to Edit");
           }
            else{
                $.ajax({
                    type: "POST",
                    url: "updateGame.php",
                    data: { gameId: gameId , newTime: newTime, newDate: newDate, newHomeTeam: newHomeTeam, newAwayTeam: newAwayTeam, newGround: newGround}

                  }).done(function(msg) {
                       window.location.reload(true);
                  });
            }

    });
});

【讨论】:

  • 如果我不得不猜测,我猜$("#editGameBtn") 指的是一个按钮,当单击该按钮时,它会提交一个 HTML 表单。此外,最好在提交表单时触发 AJAX 事件(如果有人在其中一个表单字段上按下回车键来提交表单怎么办?)。
猜你喜欢
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 2018-07-21
  • 2017-05-23
相关资源
最近更新 更多