前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >通过JavaScript用一些键值对来模拟表单控件

通过JavaScript用一些键值对来模拟表单控件

原创
作者头像
用户7718188
修改2021-10-08 15:16:18
修改2021-10-08 15:16:18
34900
代码可运行
举报
文章被收录于专栏:高级工程司高级工程司
运行总次数:0
代码可运行
通过JavaScript用一些键值对来模拟表单控件

利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的send()方法来异步的提交这个”表单”。比起普通的ajax, 使用FormData的最大优点就是我们可以异步上传一个二进制文件。 语法:

代码语言:javascript
代码运行次数:0
运行
复制
 var formdata = new FormData ([可选]HTMLFormElement);

例子1:

代码语言:javascript
代码运行次数:0
运行
复制
<script type="text/javascript">
$(window).load(function() {
    $('#blobSubmit').on('click', function(){
        var img = cropper.getBlob();
        var formdata = new FormData();
        formdata.append("imagefile", img);//Blob格式
        formdata.append("token", "ce509193050ab9c2b0c518c9cb7d9556");
        $.ajax({
            url:"/file/blob/updateHeadPicture.action",
            data: formdata,
            type:"post",
            processData: false,
            contentType: false,
            success: function(oResult) {
                if(oResult.success==1){
                    window.location.href="/image";
                }else{
                    alert(oResult.message);
                }
            }
        })
    })
});
</script>

例子2: 取得form对象,作为参数传入到FormData对象 HTML:

代码语言:javascript
代码运行次数:0
运行
复制
<form name="form1" id="form1">  
<input type="text" name="name" value="fdipzone">  
<input type="text" name="gender" value="male">  
</form>  

JS:

代码语言:javascript
代码运行次数:0
运行
复制
var form = document.getElementById('form1');  
var formdata = new FormData(form);  

例子3:

代码语言:javascript
代码运行次数:0
运行
复制
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
<html>  
 <head>  
  <meta http-equiv="content-type" content="text/html; charset=utf-8">  
  <title> FormData Demo </title>  
  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>  
  
  <script type="text/javascript">  
  <!--  
    function fsubmit(){  
        var data = new FormData($('#form1')[0]);  
        $.ajax({  
            url: 'server.php',  
            type: 'POST',  
            data: data,  
            dataType: 'JSON',  
            cache: false,  
            processData: false,  
            contentType: false  
        }).done(function(ret){  
            if(ret['isSuccess']){  
                var result = '';  
                result += 'name=' + ret['name'] + '<br>';  
                result += 'gender=' + ret['gender'] + '<br>';  
                result += '<img src="' + ret['photo']  + '" width="100">';  
                $('#result').html(result);  
            }else{  
                alert('提交失敗');  
            }  
        });  
        return false;  
    }  
  -->  
  </script>  
  
 </head>  
  
 <body>  
    <form name="form1" id="form1">  
        <p>name:<input type="text" name="name" ></p>  
        <p>gender:<input type="radio" name="gender" value="1">male <input type="radio" name="gender" value="2">female</p>  
        <p>photo:<input type="file" name="photo" id="photo"></p>  
        <p><input type="button" name="b1" value="submit" onclick="fsubmit()"></p>  
    </form>  
    <div id="result"></div>  
 </body>  
</html>  

其中,服务器端返回Json字符串中包含属性isSuccess为true或者false,name等属性,直接转换成jsonString返回。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通过JavaScript用一些键值对来模拟表单控件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档