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(); });