`

Ajax提交Form表单

阅读更多

<div class="iteye-blog-content-contain" style="font-size: 14px">

After clicking the submit button, FormValidation will submit the form if all the fields are valid.

If you want to do additional tasks instead of submitting the form, you can trigger the success.form.fv event:

$(document).ready(function() {
    $(form)
        .formValidation({
            ... options ...
        })
        .on('success.form.fv', function(e) {
            // Prevent form submission
            e.preventDefault();

            // Some instances you can use are
            var $form = $(e.target),        // The form instance
                fv    = $(e.target).data('formValidation'); // FormValidation 
instance

            // Do whatever you want here ...
        });
});

Inside the success.form.fv event handler, if you want to submit the form after doing your custom job, just simply use thedefaultSubmit() method:

$(document).ready(function() {
    $(form)
        .formValidation({
            ... options ...
        })
        .on('success.form.fv', function(e) {
            // Prevent form submission
            e.preventDefault();

            var $form = $(e.target),
                fv    = $(e.target).data('formValidation');

            // Do whatever you want here ...

            // Then submit the form as usual
            fv.defaultSubmit();
        });
});

The next sections demonstrates one of most frequent usage — using Ajax to submit the form.

 

Using Ajax to submit form data

The following code snippet uses the jQuery's serialize() method to get the form data, and then ajax() methods to send the data to the back-end endpoint:

$(document).ready(function() {
    $(form)
        .formValidation({
            ... options ...
        })
        .on('success.form.fv', function(e) {
            // Prevent form submission
            e.preventDefault();

            var $form = $(e.target),
                fv    = $form.data('formValidation');

            // Use Ajax to submit form data
            $.ajax({
                url: $form.attr('action'),
                type: 'POST',
                data: $form.serialize(),
                success: function(result) {
                    // ... Process the result ...
                }
            });
        });
});
 

Using Ajax to submit form data including files

Assume that the form consists of file input:

<input type="file" name="uploadedFiles" multiple />

You can use FormData to collect the form data including selected files:

$(document).ready(function() {
    $(form)
        .formValidation({
            ... options ...
        })
        .on('success.form.fv', function(e) {
            // Prevent form submission
            e.preventDefault();

            var $form    = $(e.target),
                formData = new FormData(),
                params   = $form.serializeArray(),
                files    = $form.find('[name="uploadedFiles"]')[0].files;

            $.each(files, function(i, file) {
                // Prefix the name of uploaded files with "uploadedFiles-"
                // Of course, you can change it to any string
                formData.append('uploadedFiles-' + i, file);
            });

            $.each(params, function(i, val) {
                formData.append(val.name, val.value);
            });

            $.ajax({
                url: $form.attr('action'),
                data: formData,
                cache: false,
                contentType: false,
                processData: false,
                type: 'POST',
                success: function(result) {
                    // Process the result ...
                }
            });
        });
});

Please pay attention on contentType and processData options of the jQuery's ajax() method:

  • Setting contentType: false tells jQuery to not add Content-Type to the request
  • Setting processData: false tells jQuery to not convert our data (which is a FormData instance) to a string

On the server side, you can get the uploaded files under the names uploadedFiles-0

uploadedFiles-1, and so forth, depending how many files are chosen.

FormData are supported in modern browsers including IE 10+. You shouldn't use it if your application needs to support previous versions of IE such as IE 8, IE 9.
 

Using jQuery Form plugin

jQuery Form plugin allows us to submit the form, including sending files with an Ajax request easily.

The following snippet shows how to use jQuery Form's ajaxSubmit() method to send all form data, including selected files to the server:

<!-- Including jQuery Form plugin -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.51/
jquery.form.min.js"></script>

<form id="testForm" method="post" class="form-horizontal">
    ...
</form>
$(document).ready(function() {
    $('#testForm')
        .formValidation({
            ... options ...
        })
        .on('success.form.fv', function(e) {
            // Prevent form submission
            e.preventDefault();

            var $form = $(e.target);
            $form.ajaxSubmit({
                // You can change the url option to desired target
                url: $form.attr('action'),
                dataType: 'json',
                success: function(responseText, statusText, xhr, $form) {
                    // Process the response returned by the server ...
                    // console.log(responseText);
                }
            });
        });
});

 

</div>

 

分享到:
评论

相关推荐

    ajax提交form表单

    在IT领域,特别是Web开发中,使用Ajax(Asynchronous JavaScript and XML)进行form表单的无刷新提交是一项关键技能。这种技术允许网页在不重新加载整个页面的情况下与服务器交互,从而提高了用户体验。以下是对给定...

    ajax提交form表单和上传图片

    在Web开发中,异步JavaScript和XML(Ajax)技术被广泛用于提高用户体验,尤其是在处理表单提交和文件上传时。本教程将详细讲解如何利用jQuery、jQuery Form插件以及Spring MVC框架来实现Ajax提交表单并上传图片。...

    使用AJAX提交Form表单

    二、使用AJAX提交Form表单的步骤 1. 创建XMLHttpRequest对象:在JavaScript中,我们首先需要创建一个XMLHttpRequest对象,这通常是异步的,意味着它不会阻塞页面的其他操作。 ```javascript var xhr = new ...

    java导入导出全部文件jar包,ajax提交form表单返回提示数据

    在form表单提交中,如果希望使用Ajax,你需要阻止表单的默认提交行为,然后使用JavaScript手动构造并发送Ajax请求。同时,你需要在后端设置接收和处理这些请求的接口。例如,在Spring MVC框架中,你可以定义一个...

    使用AJAX提交Form表单实例演示

    总结,这个实例演示了如何使用jQuery和AJAX来实现Form表单的无刷新提交。通过这种方式,用户可以在提交表单后立即看到结果,而无需等待页面刷新,提高了交互性和用户体验。记住,实际应用中你需要根据具体需求调整...

    ajaxForm异步提交表单(含图片)

    AjaxForm是jQuery Form Plugin的一个功能,用于实现异步表单提交,特别是处理包含图片在内的复杂数据。本文将深入探讨如何使用ajaxForm进行异步表单提交。 首先,让我们了解什么是Ajax。AJAX(Asynchronous ...

    jQuery ajax提交Form表单实例(附demo源码)

    首先,传统的HTML Form表单提交会导致页面刷新,用户体验不佳。为了实现无刷新提交,我们可以利用jQuery的`$.ajax`函数。`$.ajax`函数允许我们设置一系列参数,包括请求的URL、HTTP方法(POST或GET)、要发送的数据...

    ajax验证并提交表单的两种方法博客源码

    本资源通过ajax实现对提交的form表单的验证,该代码不但有针对property验证,也有针对object验证,还有一个异步获取对象的实例;包含完整的代码和库文件;在myeclipse8.5和apache-tomcat-6.0.30测试通过;访问网址:...

    Ajax提交Form表单及文件上传的实例代码

    为了解决传统的Form表单提交导致的页面刷新问题,可以通过Ajax提交表单。这需要使用JavaScript来阻止表单的默认提交行为,并用Ajax异步提交表单数据到服务器。以下是一个实例代码,展示了如何使用jQuery来实现这一...

    Ajax提交Form表单页面仍会刷新问题的快速解决办法

    然而,在实际操作中,我们可能会遇到Ajax提交Form表单时页面仍然刷新的问题。本文将深入探讨这个问题及其解决方案。 首先,我们要了解Ajax的工作原理。Ajax(Asynchronous JavaScript and XML)是一种在无需重新...

    利用ajax提交form表单到数据库详解(无刷新)

    虽然这个基本的Ajax表单提交示例已经展示了无刷新交互的可行性,但在实际应用中,还需要考虑更多细节。比如,进行表单验证以确保输入的有效性,对敏感数据进行加密,以及处理可能出现的错误情况。此外,随着技术的...

    基于jQuery通过jQuery.form.js插件使用ajax提交form表单

    在jQuery Form插件可以让你很容易的使用AJAX提交Form表单,主要方法ajaxForm和ajaxSubmit负责收集表单元素的信息,管理提交进程。这两种方法都是可配置的,让你完全控制Form提交,本篇文章介绍基于jQuery通过jQuery....

    ajax提交表单到后台

    // 阻止默认的表单提交行为 var formData = $(this).serialize(); // 获取表单数据 $.ajax({ url: 'submitForm', // 后端接口URL type: 'POST', data: formData, dataType: 'json', success: function...

    jquery实现ajax提交form表单的方法总结

    其中,使用jQuery处理Ajax提交form表单是一个常见的需求。通过Ajax技术,可以异步地提交表单,而无需重新加载整个页面,从而提高用户体验。下面将详细介绍如何使用jQuery实现Ajax提交form表单的两种方法。 首先,...

    jquery的ajax提交form表单的两种方法小结(推荐)

    jquery的ajax提交form表单的两种方法小结(推荐) 方法一: function AddHandlingFeeToRefund() { var AjaxURL= "../OrderManagement/AjaxModifyOrderService.aspx"; alert&#40;$('#formAddHandlingFee'&#41;....

    聊聊Ajax提交form表单的看法和认识

    总的来说,Ajax提交form表单是提高用户体验的有效手段,它减少了页面刷新带来的不便,使用户能够在等待服务器响应的同时继续浏览其他内容。通过理解Ajax的工作原理以及GET和POST方法的差异,开发者可以更好地利用...

    Spring下的AJAX和Form表单提交及单/多方法控制器比较

    在本文中,我们将探讨在Spring框架下,使用AJAX与传统Form表单提交的区别,以及单方法控制器和多方法控制器的使用场景。首先,我们来看看AJAX提交与Form表单提交的基本概念。 **AJAX(Asynchronous JavaScript and ...

Global site tag (gtag.js) - Google Analytics