简体   繁体   English

Ajax调用后Javascript / Jquery停止工作

[英]Javascript/Jquery stops working after Ajax call

I have an ajax call that works great the first time the form is submitted after that all javascript on the page seems to break. 我有一个ajax调用,在页面上的所有javascript似乎都中断之后,第一次提交表单时效果很好。 As well as the form won't submit with ajax again. 表单不会再使用ajax提交。

Here is my ajax call: 这是我的ajax电话:

$('form').submit(function(event) {
   $('input:submit').attr("disabled", true).after('<p class="loading">Searching...</p>');

$.ajax({
  type: "POST",
  url: pathname,
  data: $(this).serialize(),
  success: function(data) {
    $('#container').html("<div id='message'></div>");
    $('#message').append(data).hide().fadeIn(1500);
  },
});
event.preventDefault();
});

I'm getting no errors in my console. 我的控制台没有任何错误。 Any ideas what might be causing this? 任何想法可能是什么原因造成的?

I solved the issue, the main page content was changing. 我解决了问题,主页内容正在更改。 Which was causing the javascript to unload. 导致javascript卸载。 So I need to use Jquery .on/.live and then it works. 所以我需要使用Jquery .on / .live,然后它才能工作。 For what ever reason this worked fine on one server and not on another. 无论出于什么原因,它在一台服务器上都可以正常工作,而在另一台服务器上却不能。

Remove disabled after submitting the form. 提交表格后,删除已disabled的人。 And remove the , mentioned by @JustinRusso. 并取出,通过@JustinRusso提及。

$('form').submit(function(event) {
   $('input:submit').attr("disabled", true).after('<p class="loading">Searching...</p>');

    $.ajax({
      type: "POST",
      url: pathname,
      data: $(this).serialize(),
      success: function(data) {
        $('#container').html("<div id='message'></div>");
        $('#message').append(data).hide().fadeIn(1500);
        $('input:submit').removeAttr("disabled");
      }
    });
    event.preventDefault();
});

Use as below: No Need to define event.preventDefault(); 用法如下:无需定义event.preventDefault();

$('form').submit(function(event) {
   $('input:submit').attr("disabled", true).after('<p class="loading">Searching...</p>');

    $.ajax({
      type: "POST",
      url: pathname,
      data: $(this).serialize(),
      success: function(data) {
        $('#container').html("<div id='message'></div>");
        $('#message').append(data).hide().fadeIn(1500);
        $('input:submit').removeAttr("disabled");
      },
    });
   return false;
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM