ajax加载会禁用其他链接,即使返回false,表单也会提交,

2024-04-24 17:06:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试根据验证结果加载窗体的某些部分。这是我正在使用的代码 表单上的所有按钮都是一样的。你知道吗

$("#button").click(function(e){
      e.preventDefault();
      noPgLoad(this);
});
function noPgLoad(button){
  $.ajax({
    type: "POST",
    url: url,
    data : serialized_data,
    success: function(data,textStatus,xhr){
           $('#somediv').replaceWith(data);
           return false;
           },
    error: fail,
    dataType: "html"
 });
}

在django视图中,我检查request.is\是ajax吗() 问题:

  1. ajax调用将替换正确的验证结果,但页面上的其他链接不起作用。你知道吗
  2. 当在成功的ajax调用后单击按钮时,它提交表单,也就是说,ajax的jquery函数没有被调用,因此表单被提交。 我一整天都在做这个,阿贾克斯新手。有吗想法是最受欢迎的。你知道吗

Tags: 代码url表单datatypeajaxfunctionbutton
1条回答
网友
1楼 · 发布于 2024-04-24 17:06:24

我不确定你的第一个问题,但我认为你可以用livesee jquery docs)而不是click来解决第二个问题

$("#button").live('click', function(e){
  e.preventDefault();
  noPgLoad(this);
});

简单地解释一下,当您使用click时,它只适用于页面上的元素。我想您的代码$('somediv').replaceWith(data)正在替换按钮。单击new按钮不会触发处理程序,因为它是在附加处理程序之后添加的。你知道吗

当您使用live然后添加一个新按钮时,单击新按钮将触发处理程序。你知道吗

相关问题 更多 >