02jQuery实现将form表单数据转换成json对象

form表单操作是Web开发过程中使用频率很高,而且在与后端做数据对接时,后端开发人员编写的接口通常要求前端开发人员将form表单的数据值以json对象格式传回,因此我们可以封装一个公共调用的方法来实现,如下所示:


image.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>将表单数据转为json对象</title>
    <link rel="stylesheet" href="./layui/css/layui.css"><!-- 引入layUI布局样式 -->
</head>
<body>
    <form id="formDemo" class="layui-form">
        <table class="layui-table" lay-even>
            <tbody>
                <tr>
                    <th>用户名</th>
                    <td id="userName">
                        <div class="layui-form-item layui-input-inline">
                            <input tyep="text" name="userName" class="layui-input">
                        </div>
                    </td>
                </tr>
                <tr>
                    <th>登录密码</th>
                    <td id="password">
                        <div class="layui-form-item layui-input-inline">
                            <input tyep="text" name="password" class="layui-input">
                        </div>
                    </td>
                </tr>
                <tr>
                    <th>用户权限</th>
                    <td id="role">
                        <div class="layui-form-item layui-input-inline">
                            <input type="text" name="role" class="layui-input" readonly="true" value="管理员">
                        </div>
                    </td>
                </tr>
                <tr>
                    <th>手机号</th>
                    <td id="phone">
                        <div class="layui-form-item layui-input-inline">
                            <input tyep="text" name="phone" class="layui-input">
                        </div>
                    </td>
                </tr>
                <tr>
                    <th>用户备注</th>
                    <td id="nickName">
                        <div class="layui-form-item layui-input-inline">
                            <input tyep="text" name="nickName" class="layui-input">
                        </div>
                    </td>
                </tr>

            </tbody>
        </table>

    </form>
    <button class="layui-btn layui-btn-fluid" id="btnform">将表单数据转为json对象</button>
    <script src="./js/jquery-1.9.1.min.js"></script>
    <script src="./layui/layui.js" type="text/javascript"></script>
    <script type="text/javascript">
        layui.use(['form'], function () {
            var form = layui.form;
        });
    </script>
    <script type="text/javascript">
        $("#btnform").click(function () {
            console.log(formJson("formDemo")); //调用
        });
        //将form表单数据拼接成json对象
        function formJson(id) {
            var arr = $("#" + id).serializeArray();//form表单序列化
            var jsonStr = "";
            jsonStr += '{';
            for (var i = 0; i < arr.length; i++) {

                jsonStr += '"' + arr[i].name + '":"' + arr[i].value + '",';
            }
            jsonStr = jsonStr.substring(0, (jsonStr.length - 1));
            jsonStr += '}';
            var jsons = JSON.parse(jsonStr); //将拿到的键值对转换位json对象
            return jsons;
        }
    </script>
</body>
</html>

我们可以将运行的结果在浏览器的控制台打印出来,如下所示:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,060评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,410评论 19 139
  • 大约半年前,我右手得了“鼠标手”。起初,手腕部酸胀乏力,隐隐作痛。后来,发展到即便不用力,也时时感到胀痛,局部还可...
    聆听万籁阅读 1,052评论 1 1
  • 打扫卫生,瞟了一眼餐桌上装面包的空纸袋,我有点不乐意(孩子们吃完东西,没有把袋子扔垃圾桶),随手我就把纸袋扔...
    安然RS阅读 419评论 0 3
  • 落叶像酣睡的孩童 大片大片 融入到泥土的怀里 于是 人们的眼里便有了 这满地的金黄 当然 这金黄不止是落叶 还有大...
    夏初晨阅读 662评论 2 7

友情链接更多精彩内容