精华内容
下载资源
问答
  • 今天小编就为大家分享一篇Vue 实现把表单form数据 转化成json格式的数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • JQuey有序列化表单的方法: 1、serialize()----生成数据格式为字符串,以&连接;如: name&age&gender 2、serializeArray()----生成一个JSON数组,其中JSON数据格式为:{"name":"xxx","value":"xxxx"} ....

    需求:表单字段很多,需要将这些字段封装,一起传递给后台,后台接收数据后处理;

    JQuey有序列化表单的方法:

    1、serialize()----生成数据格式为字符串,以&连接;如:    name&age&gender

    2、serializeArray()----生成一个JSON数组,其中JSON数据格式为:{"name":"xxx","value":"xxxx"}

     

    序列化的数据只能通过AJAX提交,如果是第二种序列化方式,序列化后的数据还需要JSON.stringify()处理;

     

    第一种方法(serialize)传给后台的数据,后台字符串分割即可;

    第二种方法(serializeArray)传给后台的数据,后台接收:

    把字符串转为JSON 数组

    JSONArray jsonArray = JSONArray.parseArray(getPara("xxx"));

    转载于:https://www.cnblogs.com/huozaimengli/p/8558699.html

    展开全文
  • 后台一定加上@ResponseBody注解返回数据 @RequestMapping("/cart") @ResponseBody public String Cart(HttpSession session, HttpServletResponse response,Integer id) throws Exception{ return "ok"; }

    在form中天机按钮及点击事件,将form元素作为参数传入

    <input type="button" name="submit" οnclick="mycart(this.form)" value="Add to cart" class="button">

    js方法:

    function mycart(form){
        $.ajax({
            type:"post",
            url:"/cart/cart.action",
            datatype:"text",
            data:$(form).serialize(),
            success:function (info) {
                alert(info)
            },
            error:function () {
                alert("error!")
            }
        })
    };

    后台一定加上@ResponseBody注解返回数据

    @RequestMapping("/cart")
    @ResponseBody
    public  String Cart(HttpSession session, HttpServletResponse response,Integer id) throws Exception{
    
       return "ok";
    }
    展开全文
  • 下面小编就为大家带来一篇jQuery将表单序列化成一个Object对象的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • NULL 博文链接:https://goro.iteye.com/blog/1671322
  • 主要介绍了基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象) 的相关资料,需要的朋友可以参考下
  • 本文总结了下在表单处理中单选、多选、选择框值的获取及表单序列化,写成了一个对象。如下: var formUtil = { // 获取单选按钮的值,如有没有选的话返回null // elements为radio类的集合的引用 ...
  • 世上没有最聪明的人,只有最懒的人,分享一个表单数据序列化为json数据,通过ajax提交数据就不用一个一个的去获取值了,用下面的方法一键取值,懒人必备利器 $.fn.serializeObject = function () {  var o ...

    世上没有最聪明的人,只有最懒的人,分享一个表单数据序列化为json数据,通过ajax提交数据就不用一个一个的去获取值了,用下面的方法一键取值,懒人必备利器

    $.fn.serializeObject = function () {
        var o = {};
        var a = this.serializeArray();
        $.each(a, function () {
            if (o[this.name] !== undefined) {
                if (!o[this.name].push) {
                    o[this.name] = [o[this.name]];
                }
                o[this.name].push(this.value || '');
            } else {
                o[this.name] = this.value || '';
            }
        });
        return o;
    };

    有了这个方法后获取表单数据就很简单了,如下:

     
    var formdata = $("#formData").serializeObject();

    控制台打印输出结果值:

    console.log(JSON.stringify(formdata));

    formdata得到的就是最终转为json数据的结果值,也就是最后ajax提交的数据,formDate就是form表单的id值,使用该方法提交数据需要给提交按钮加上监听事件,为了使用ajax提交表单数据,监听事件最后加上一个返回值,避免表单提交跳转

    return false

    分享一下我的例值,使用了layui框架:

    //监听提交按钮-页面对应按钮<button lay-submit="" lay-filter="demo" class="layui-btn">提交</button>
        form.on("submit(demo)",function (data) {
            layer.msg('确定提交?',{
                time: 20000, //20s后自动关闭
                btn: ['确定', '取消'],
                icon:0,
                yes:function (index) {
                    //获取form表单数据
                    var formdata = $("#formData").serializeObject();
                    var stringJson = JSON.stringify(formdata);
                    console.log(stringJson)
                    $.post('地址',formdata,function (data) {
                        if (data.result==1){
                            layer.msg("提交成功",{
                                icon:1,
                                time:1000,
                            });
                            setTimeout(function () {
                                //获得当前窗口索引
                                var index=parent.layer.getFrameIndex(window.name);
                                //调用父类关闭窗口方法
                                parent.layer.close(index);
                            },1000)
    
                        } else {
                            layer.msg("提交失败",{
                                icon:0,
                                time:1000,
                            });
                        }
                    });
                    form.render();
                    layer.close(index)
                }
            });
            return false;//防止表单数据提交页面跳转
        });

     

    展开全文
  • jQuery对的表单数据序列化和校验

    千次阅读 2017-09-12 11:14:41
    jQuery对的表单数据序列化和校验表单序列化 ## 如果想让表单通过ajax异步提交,那么首先我们要通过js获取到每个表单中输入的值,如果表单项比较多的话,是一件很麻烦,很痛苦的事情,那么我们可以通过jquery的表单...

    jQuery对的表单数据序列化和校验

    表单序列化

      如果想让表单通过ajax异步提交,那么首先我们要通过js获取到每个表单中输入的值,如果表单项比较多的话,是一件很麻烦,很痛苦的事情,那么我们可以通过jquery的表单序列化的操作将表单的数据拼接成提交的参数格式 即:name=value&name=value&name=value 或者 json格式对象
    例如:表单如下:

    这里写图片描述

    使用serialize方法
    js代码:

    这里写图片描述

    打印结果:

    这里写图片描述

    表单校验插件

      网络上有许多成熟的插件共使用者参考,插件就是将jquery实现的常用操作进行封装,封装后的小框架就可以叫做插件,按照插件的语法去操作可以实现很多复杂的功能,而这些复杂功能的背后实现我们可以不必懂。

    表单校验插件

      导入插件的步骤:
       (1) 将jquery的原始文件和插件文件jquery.validate.js导入到工程中(找不到的话我可以给发)
       (2) 编写js代码对表单进行验证

      表单验证的格式:

       “$(“”form表单的选择器”“).validate(json数据格式); //键值对 键:值({})”

      
    json数据格式:

            "{
              rules:{
                    表单项name值:校验规则,
                    表单项name值:校验规则... ...
              },
              messages:{
                    表单项name值:错误提示信息,
                    表单项name值:错误提示信息... ...
              }
            }"      

    其中:校验规则,可以是一个也可以是多个,如果是多个使用json格式

    常用校验规则

    这里写图片描述

      注意:当错误提示信息不按照我们预想的位置显示时,我们可以按照如下方式进行设置

      自定义错误显示标签放在我们需要显示的位置,当此表单项验证不通过时会将此信息自动显示出来,jquery验证插件会自动帮助我们控制它的显示与隐藏”<lable for=”“html元素name值”” class=”“error”” style=”“display:none”“>错误信息</lable>”

      如果设置了错误lable标签就不必在messages中设置此表单项错误提示信息了

    如果预定义的校验规则尚不能满足需求的话可以进行自定义校验规则

    自定义校验

    自定义校验规则步骤如下:

      (1) 使用$.validator.addMethod(“”校验规则名称”“,function(value,element,params)){}”

      (2) 在rules中通过校验规则名称使用校验规则

      (3) 在messages中定义该规则对应的错误提示信息

       其中:value是校验组件的value值
          element是校验组件的节点对象
          params是校验规则的参数

    注册验证案例

    下面是一个注册的验证,可以看下

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <title>注册</title>
    <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
    <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>
    <!-- 引入表单校验jquery插件 -->
    <script src="js/jquery.validate.min.js" type="text/javascript"></script>
    <script src="js/bootstrap.min.js" type="text/javascript"></script>
    
    <style>
    body {
        margin-top: 20px;
        margin: 0 auto;
    }
    
    .carousel-inner .item img {
        width: 100%;
        height: 300px;
    }
    
    font {
        color: #3164af;
        font-size: 18px;
        font-weight: normal;
        padding: 0 10px;
    }
    
    .error{
        color:red }
    </style>
    
    
    
    <script type="text/javascript">
    
        //自定义校验规则
        $.validator.addMethod(
            //规则的名称
            "checkUsername",
            //校验的函数
            function(value,element,params){
    
                //定义一个标志
                var flag = false;
                //value:输入的内容
                //element:被校验的元素对象
                //params:规则对应的参数值
                //目的:对输入的username进行ajax校验
                $.ajax({
                    "async":false,//注意点
                    "url":"${pageContext.request.contextPath }/ylgcheckUsername",
                    "data":{"username":value},
                    "type":"POST",
                    "dataType":"json",
                    "success":function(data){
                        flag = data.isExist;
                    }
                });
    
    
                //返回false代表该校验器不通过
                return !flag;
            }
    
        );
    
        $(function(){
            $("#myform").validate({
                rules:{
                    "username":{
                        "required":true,
                        "checkUsername":true
                    },
                    "password":{
                        "required":true,
                        "rangelength":[6,12]
                    },
                    "repassword":{
                        "required":true,
                        "rangelength":[6,12],
                        "equalTo":"#password"
                    },
                    "email":{
                        "required":true,
                        "email":true
                    },
                    "sex":{
                        "required":true
                    }
                },
                messages:{
                    "username":{
                        "required":"用户名不能为空",
                        "checkUsername":"用户名已存在"
                    },
                    "password":{
                        "required":"密码不能为空",
                        "rangelength":"密码长度6-12位"
                    },
                    "repassword":{
                        "required":"密码不能为空",
                        "rangelength":"密码长度6-12位",
                        "equalTo":"两次密码不一致"
                    },
                    "email":{
                        "required":"邮箱不能为空",
                        "email":"邮箱格式不正确"
                    }
                }
            });
        });
    
    </script>
    
    </head>
    <body>
    
        <!-- 引入header.jsp -->
        <jsp:include page="/header.jsp"></jsp:include>
    
        <div class="container"
            style="width: 100%; background: url('image/regist_bg.jpg');">
            <div class="row">
                <div class="col-md-2"></div>
                <div class="col-md-8"
                    style="background: #fff; padding: 40px 80px; margin: 30px; border: 7px solid #ccc;">
                    <font>会员注册</font>USER REGISTER
                    <form id="myform" class="form-horizontal" action="${pageContext.request.contextPath }/ylgregister" method="post" style="margin-top: 5px;">
                        <div class="form-group">
                            <label for="username" class="col-sm-2 control-label">用户名</label>
                            <div class="col-sm-6">
                                <input type="text" class="form-control" id="username" name="username"
                                    placeholder="请输入用户名">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="inputPassword3" class="col-sm-2 control-label">密码</label>
                            <div class="col-sm-6">
                                <input type="password" class="form-control" id="password" name="password"
                                    placeholder="请输入密码">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="confirmpwd" class="col-sm-2 control-label">确认密码</label>
                            <div class="col-sm-6">
                                <input type="password" class="form-control" id="confirmpwd" name="repassword"
                                    placeholder="请输入确认密码">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
                            <div class="col-sm-6">
                                <input type="email" class="form-control" id="inputEmail3" name="email"
                                    placeholder="Email">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="usercaption" class="col-sm-2 control-label">姓名</label>
                            <div class="col-sm-6">
                                <input type="text" class="form-control" id="usercaption" name="name"
                                    placeholder="请输入姓名">
                            </div>
                        </div>
                        <div class="form-group opt">
                            <label for="inlineRadio1" class="col-sm-2 control-label">性别</label>
                            <div class="col-sm-6">
                                <label class="radio-inline"> 
                                    <input type="radio" name="sex" id="sex1" value="male" ></label> 
                                <label class="radio-inline"> 
                                    <input type="radio" name="sex" id="sex2" value="female"></label>
                                <label class="error" for="sex" style="display:none ">您没有第三种选择</label>
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="date" class="col-sm-2 control-label">出生日期</label>
                            <div class="col-sm-6">
                                <input type="date" class="form-control" name="birthday">
                            </div>
                        </div>
                                <input type="submit" width="100" value="注册" name="submit"           
                    </form>
      </body>
    </html>
    
    展开全文
  • 但是,观察输出的信息,发现serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串。 serialize确实是能够解决一般的提交数据。但是有时我们需要的是一个object对象,而不是字符串(比如jqgrid reload时...
  • Submit提交表单数据序列化 get是将未加密的明文数据追加到url后面提交,post是将未加密的明文数据封装到请求体。所以说这两种方式虽然一个是在url可见一个不可见,但严格意义上都是不安全的,想要安全只能使用...
  • * 将form表单转化成JavaScript object */ $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) { if (!o[this....
  • 主要介绍了jquery序列化form表单,使用ajax提交后处理返回的json数据的示例,需要的朋友可以参考下
  • 原生js实现form表单序列化的方法

    千次阅读 2019-03-05 19:25:20
    当我们有form表单而且...我们一起用原生来写一个表单序列化方法: 先介绍一下jquery中有相应的表单序列化的方法: 1.serialize()方法 格式:var data = $(“form”).serialize(); 功能:将表单内容序列化成一个字...
  • 表单序列化可以比较方便的拿到form表单中的数据,但是序列化后的数据是一段url字符串.这边利用方法转化成json数据格式: var DataDeal = { //将从form中通过$('#refer').serialize()获取的值转成json ...
  • 前言:自己很容易混淆和忘记form表单一些参数提交的规则,相信大家也是如此,特此写了一个测试页面。做一个说明性文档。  一、准备一个页面,写一个form,提供N个表单元素。样子如下。 &lt;form id="...
  • Vue传递序列化数据

    千次阅读 2017-11-21 10:04:00
    评论:vue-resource 这个组织数据和可选参数的方式很怪,它是放在前后两个对象里了。 emulateJSON : true 的原理是如下(我用的谷歌网页的翻译功能翻译的它github文档) //从这里开始 传统的网络服务器 如果...
  • 随着Ajax的出现,表单序列化已经成为一种需求,在学习原生Ajax时,若用POST方法向后台提交数据时,就需要将表单序列化 在JavaScript中可以利用表单字段的type属性,连同name和value属性,一起实现表单序列化。 在进行...
  • Ajax表单序列化

    2018-09-18 11:24:49
    文章目录Ajax表单的序列化一、.serialize( )概述二、.serializeArray()概述示例:弹出表单数据 Ajax表单的序列化 一、.serialize( ) 概述 将用作提交的表单元素的值编译成字符串。 不接受参数 注意: 只有 ...
  • jquery方法:使用serialize()$("button").click(function(){ ...要表单元素的值包含到序列字符串中,元素必须有 name 属性。 原生JS方法var myForm = document.getElementsByClassName('myForm'); console.log(m
  • 将form表单序列化

    千次阅读 2015-10-20 09:51:23
    function form2Json(formID) { var serializeObj = {}; var aray = $(formID).serializeArray(); $(aray).each(function(){ if(serializeObj[this.name]) { if($.isArray(serializeObj[this.name])
  • 随着 Ajax 的出现,表单序列化已经成为一种常见需求。在 JavaScript 中,可 以利用表单字段的 type 属性,连同 name 和 value 属性一起实现对表单序列化。在编写代码之前, 有必须先搞清楚在表单提交期间,浏览器...
  • 序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent...
  • form表单序列化数据之后追加额外数据 form表单序列化数据之后追加额外数据多使用在js中,下面是追加额外数据的代码: $.param({'invite_num':invite_num})+'&'+$('#edit_guser').serialize() 其中,‘&’前面是的‘{...
  • js序列化序列化参考: ...序列化:var serializeJson = JSON.stringify($("#fiveLevelIndexForm").serializeArray()); 反序列化: var json = $.parseJSON(parent.$("#serializeR...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,259
精华内容 22,503
关键字:

表单数据序列化