首页 > 其他分享 >form表单序列化和ajax提交表单

form表单序列化和ajax提交表单

时间:2023-01-02 18:33:29浏览次数:42  
标签:house formData serialize add 表单 ajax 序列化

页面元素

<link rel="stylesheet" href="http://lib.sinaapp.com/js/bootstrap/3.3.7/css/bootstrap.css">
<script src="https://cdn.bootcdn.net/ajax/libs/layui/2.7.6/layui.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.3/jquery.js"></script>
<form id="frm">
        <div class="form-group">
            <label for="housename">housename</label>
            <input type="text" class="form-control" id="housename" name="houseName" placeholder="housename">
        </div>
        <div class="form-group">
            <label for="InputFile">图片</label>
            <input type="file" id="InputFile" onchange="selImage(this)">
            <img width="240px" height="200px" id="img" hidden><br>
            <input type="text" id="housePic" name="housePic" placeholder="图片" readonly>
        </div>
        <div class="form-group">
            <label for="house_layout">户型</label>
            <input type="text" class="form-control" id="house_layout" name="houseLayout" placeholder="house_layout">
        </div>
        <div class="form-group">
            <label for="house_type">类型</label>
            <select class="form-control" id="house_type" name="houseType">
                <option value="1">合租</option>
                <option value="2">单租</option>
            </select>
        </div>
        <button type="button" class="btn btn-light" onclick="fnSubmit()">Submit</button>
</form>

1.序列化表单数据

借助jQuery的serialize()函数
serialize() 函数的好处:可以一次性获取到表单中的所有的数据。

js:

function fnSubmit() {
    //序列化为字符串(键值格式)
    let formData = $("#frm").serialize();
    console.log(formData);
    $.ajax({
        type: "post",
        url: "http://localhost:8088/Exercises02_Renting/house/add",
        data: formData,
        dataType: "json",
        success: function (res) {
            console.log(res);
            layer.msg(res.msg, { icon: 6, time: 2000 });
            setTimeout(function () {
                window.location.href = "listlist.html"
            }, 2000)
        }
    });
}

2.后端接收

@ResponseBody
@RequestMapping("/add")
public ResultVO add(House house) {
    //houseName=&housePic=&houseLayout=&houseType=1
    //house中属性对应K-V中的键
    boolean add = houseService.add(house);
    return new ResultVO(1000,"添加成功",null);
}

tips

1.在使用 serialize() 函数快速获取表单数据时,必须为每个表单域添加 name 属性!

2.使用该方法得到的结果是一个查询字符串结构:name=value&name=valuej。

3.该方法是 jQuery 封装的,使用时必须引入 jQuery

4.该方法能够获取 隐藏域的值

5.该方法不能得到禁用状态的值

6.该方法不能得到文件域中的文件信息,所以不能完成文件上传

关于serialize()serializeArray()

标签:house,formData,serialize,add,表单,ajax,序列化
From: https://www.cnblogs.com/zdrcgubjo/p/17020326.html

相关文章

  • 表单元素,模拟百度搜索
    ​  form表单中可以放入的标签就是表单元素 <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title>......
  • 表单元素,模拟百度搜索
    ​  form表单中可以放入的标签就是表单元素 <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title>......
  • Primavera Unifier -AEM 表单设计器要点
    在上一章介绍Unifier如何配置自定义报表中,未对如何设计报表模板进行太多描述,为了能更好的帮忙大家了解AEM(AdobeExperienceManager)或 AdobeLiveCycleDesigner的设计要点......
  • Django-drf-序列化器高级用法之SerializerMethodField
    在Drf框架中的serializers.py序列化中,SerializerMethodField字段是一个只读字段。它通过调用附加到的序列化程序类上的方法来获取其值。它可用于将任何类型的数据添加到对......
  • 第十二章《文件与I/O流》第4节:对象序列化
    ​对象序列化和反序列化是Java程序中经常涉及的操作,Java语言提供了专门用于序列化对象的ObjectOutputStream类和用于反序列化的ObjectInputStream类,这使得Java语言完成序列......
  • 常见表单事件
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content......
  • Java序列化和反序列化
    遇到这个JavaSerializable序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个Serializable接口,也就是为啥要序列化c,serialVersion......
  • 极客编程python入门-序列化
    序列化我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。序列化......
  • 基于jQuery的三种AJAX请求
    基于jQuery的三种AJAX请求1.介绍get请求通常用于获取服务端资源(向服务器要资源)​ 例如:根据URL地址,从服务器获取HTML文件、CSS文件、JS文件、图片文件、数据资源等......
  • Gitea 1.18.0 | API、表单、PR、LaTeX、代码搜索、Email、包管理等18项重大更新如约而
    经过数月的开发,我们自豪地推出了正式版的Gitea1.18.0。新的系统整合了日积月累的535个PR,包含修复补丁以及功能更改,我们建议管理员升级系统前创建快照、备份数据,确保切换......