提交表单而不进行重定向
在这段代码中,我们使用了jQuery的submit()方法来捕获表单的提交事件。在事件处理函数中,我们使用serialize()方法来将表单数据序列化为一个字符串。然后,我们使用$.post()方法发送POST请求到指定的路径,并将序列化的表单数据作为参数传递。在请求成功后的回调函数中,我们可以执行一些操作。
然而,这段代码中存在一个问题:它没有阻止表单的默认提交行为。在表单提交后,浏览器会自动刷新页面或跳转到新页面。如果我们希望在提交表单后不刷新页面或不跳转到新页面,我们需要阻止默认的表单提交行为。
为了解决这个问题,我们可以使用event.preventDefault()方法来阻止表单的默认提交行为。在事件处理函数中,我们可以在发送POST请求之前调用event.preventDefault()方法,这样就可以阻止表单的默认提交行为。
下面是修改后的代码:
$('form').submit(function(event){ event.preventDefault(); // 阻止表单的默认提交行为 var serialObject = $(this).serialize(); //ex for post request $.post('path_to file',{ parameters:serialObject },function(data){ // do something after submitting }); });
问题:如何在不重定向的情况下提交表单?
原因:在上述示例中,通过使用jQuery的ajax函数来处理表单的提交。在表单的submit事件中,使用e.preventDefault()方法来阻止默认的表单提交行为,然后使用ajax函数来发送表单数据到指定的URL,并在成功返回数据后更新页面。
解决方法:将上述代码放置在form标签内部。在表单的submit事件中,使用e.preventDefault()方法阻止默认的表单提交行为,并通过ajax函数来发送表单数据。通过这种方式,可以在不重定向的情况下提交表单,并在成功返回数据后更新页面。
具体实现代码如下:
ajax example
使用上述代码,可以在不重定向的情况下提交表单,并在页面上显示返回的数据。