小编典典

$ .ajax帖子可以在Chrome中使用,但不能在Firefox中使用

ajax

好吧,我会简短。我有这个脚本将值放在数据库中。它可以在Chrome,Safari中完美运行,但不能使其在Firefox或IE中运行。似乎数据甚至都没有发布到.php文件中,而ajax根本没有启动。有人吗

这是我的jQuery脚本:

$(document).ready(function(){
$("#dodaj").click(function(){
  event.preventDefault();
  var kategorija = $("#kategorija option:selected").val();
  var si = $("#si").val();
  var hu = $("#hu").val();
  var de = $("#de").val();
  var an = $("#an").val();
  var hr = $("#hr").val();

$.ajax({
    type: "POST",
    url: "dodaj_v_bazo.php",
    data: {"kategorija": kategorija, "si": si, "hu": hu, "de": de, "an": an, "hr": hr},
    success: function(data){
        alert( "Jed uspešno dodana."+data);
    }, 
});
return false;
});
});

这是我的php文件中的内容:

$kategorija = $_POST['kategorija'];
$si = $_POST['si'];
$hu = $_POST['hu'];
$de = $_POST['de'];
$an = $_POST['an'];
$hr = $_POST['hr'];

$dodaj_v_bazo = "INSERT INTO jedi (kategorija, si, hu, de, an ,hr) VALUES ('$kategorija', '$si', '$hu', '$de', '$an', '$hr')";
mysql_query($dodaj_v_bazo) or die(mysql_error());

阅读 210

收藏
2020-07-26

共1个答案

小编典典

您没有event将事件处理程序定义为参数,因此在

event.preventDefault();

浏览器尝试event在全局范围内查找。Chrome碰巧在全局范围内提供了事件对象(因此没有错误),但是Firefox没有(因此没有错误)。

我建议将event参数添加到事件处理程序中:

$("#dodaj").click(function(event){
    event.preventDefault();
    // ...
});

还有一个额外的区别:如果您未定义event参数,event则将引用Chrome中的 本机
事件对象,该对象不同于jQuery传递给处理程序的事件对象

要了解有关使用jQuery进行事件处理的更多信息,建议阅读以下文章

2020-07-26