event.preventDefault(); 不工作

我正在尝试提交表单而不刷新页面,但是event.preventDefault(); 不工作。 这是我到目前为止所拥有的

 $('#contactform').on('submit', function() { event.preventDefault(); var that = $(this), url = that.attr('action'), type = that.attr('method'), data = {}; that.find('[name]').each(function(index, value) { var that = $(this), name = that.attr('name'), value = that.val(); data[name] = value; }); $.ajax({ url: url, type: type, data: data, succss: function(response) { console.log(response); } }); }); 

但是,一旦按下提交按钮,页面仍会重新加载。 有什么建议?

更新:主表单页面的代码如下;

  <script src="/ajax/main.js"> <form action="/ajax/contact.php" method="post" id="contactform">      

您需要将事件作为第一个参数传递给函数。

 $('#contactform').on('submit', function(event) { event.preventDefault(); ... 

如果这不起作用,您可能还有其他问题。 通过将侦听器包装在.ready()您需要确保DOM已准备好,然后才能将任何内容绑定到表单:

 $(document).ready(function() { $('#contactform').on('submit', function(event) { event.preventDefault(); ... 

您需要将event放入函数调用:

 $('#contactform').on('submit', function(event) { ... 

试试这个

 $('#contactform').submit(function(event) { event.preventDefault(); });