使用ajax提交form表单

Posted 控心frey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ajax提交form表单相关的知识,希望对你有一定的参考价值。

使用FormData对象

FormData对象是html5的一个对象,目前的一些主流的浏览器都已经兼容,非常的强大

FormData可以凭空创建一个对象,然后往这个对象里面添加数据,然后直接提交,不需要写一行html代码,如下:

var form = new FormData();
form.append("username","zxj");
form.append("password",123456);
var req = new XMLHttpRequest();
req.open("post", "${pageContext.request.contextPath}/public/testupload", false);
req.send(form);

 

这样就可以向浏览器发送表单数据了,或者也可以使用Jquery这样发送:

 var form = new FormData();
  form.append("username","zxj");
  form.append("password",123456);
 $.ajax({
                url:"${pageContext.request.contextPath}/public/testupload",
                type:"post",
                data:form,
                processData:false,
                contentType:false,
                success:function(data){
                    window.clearInterval(timer);
                    console.log("over..");
                }
});
技术分享图片

FormData还支持直接从html中的表单生成数据,就是在html页面中已经有数据了,然后FormData可以直接把这个表单的数据写入这个对象,然后直接提交给后台

代码如下,先给出html代码:

<form id="tf">
            <input type="file" name="img"/>
            <input type="text" name="username"/>
            <input type="button" value="提" onclick="test();"/>
                        .............
 </form>

FormData还支持困扰众多开发者已久的ajax的上传文件,以前我们上传文件,需要写一个表单直接刷新提交,但是这里不需要,下面给出提交代码:

  function test(){
            var form = new FormData(document.getElementById("tf"));
//             var req = new XMLHttpRequest();
//             req.open("post", "${pageContext.request.contextPath}/public/testupload", false);
//             req.send(form);
            $.ajax({
                url:"${pageContext.request.contextPath}/public/testupload",
                type:"post",
                data:form,
                processData:false,
                contentType:false,
                success:function(data){
                    window.clearInterval(timer);
                    console.log("over..");
                },
                error:function(e){
                    alert("错误!!");
                    window.clearInterval(timer);
                }
            });        
            get();//此处为上传文件的进度条
        }


 

 












以上是关于使用ajax提交form表单的主要内容,如果未能解决你的问题,请参考以下文章

使用JQuery的.ajax()提交表单后当前页面表单内容被清空,请问如何保留数据?

如何使用ajax 提交easyUI form表单

ajax提交form表单

使用ajax提交form表单

jQuery ajax提交form表单

使用JQuery的ajax提交表单能否使用一个变量来获取form的id