form表单以json格式向后台传输

最终实现效果如下:

直接上html的程序,相关的js路径都弄好了,直接复制粘贴就可以

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="http://cdn.bootcss.com/jquery/1.12.2/jquery.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery.serializeJSON/2.9.0/jquery.serializejson.js"></script>
    <style type="text/css">
        * {
            margin: 0px;
            padding: 0px;
        }
        html, body, h1, form, fieldset, legend, ol ,li{
            padding:0;
            margin:0;
        }
        ol{
            list-style:none;
        }
        body{
            background:#fff;
            color:#111;
            padding:20px;
        }
        form#payment{
            background:#9cbc2c;
            -webkit-border-radius:5px;
            border-radius:5px;
            padding:20px;
            width:400px;
        }
        form#payment fieldset{
            border:none;
            margin-bottom:10px;
        }
        form#payment fieldset:last-of-type{ margin-bottom:0; }
        form#payment legend{
            color:#384313;
            font-size:16px;
            font-weight:bold;
            padding-bottom:10px;
            text-shadow:0px 1px 1px #c0d576;
        }
        form#payment > fieldset>legend:before{
            content:"Step" counter(fieldset)":";
            counter-increment:fieldsets;
        }
        form#payment fieldset fieldset legend{
            color:#111;
            font-size:13px;
            font-weight:normal;
            padding-bottom:0;
        }
        form#payment ol li{
            background:#b9cf6a;
            background:rgba(255, 255, 255, 0.3);
            border:#e3ebc3;
            border-color:rgba(255, 255, 255, 0.6);
            border-style:solid;
            border-width:2px;
            -webkit-border-radius:5px;
            line-height:30px;
            padding:5px 10px;
            margin-bottom:2px;
        }
        form#payment ol ol li{
            bakcground:none;
            border:none;
            float:left;
        }
        form#payment label{
            float:left;
            font-size:13px;
            width:110px;
        }
        form#payment fieldset fieldset label{
            background:none no-repeat left 50%;
            line-height:20px;
            padding:0 0 0 30px;
            width:auto;
        }
        form#payment fieldset fieldset label:hover{cursor:pointer;}
        form#payment input:not([type=radio]), form#payment textarea{
            background:#fff;
            border:#fc3 solid 1px;
            -webkit-border-radius:3px;
            outline:none;
            padding:5px;
        }
        button
        {
            border:solid 10px #4d4e53;
            border-radius:10px 40px 40px 10px;
        }
    </style>
</head>
<body>
<div id="app">
    <div>
        <form id="payment">
            <fieldset>
                <legend align="center">用户资料</legend>
                <ol>
                    <li>
                        <label for="name">用户名称:</label>
                        <input type="text" id="name" name="name" placeholder="请输入用户名" required autofocus>
                    </li>
                    <li>
                        <label for="email">邮件地址:</label>
                        <input type="text" name="email" id="email" placeholder="XXXX@163.com" required>
                    </li>
                    <li>
                        <label for="phone">联系电话:</label>
                        <input type="tel" placeholder="010-12345678" id="phone" name="phone">
                    </li>
                </ol>
            </fieldset>
            <fieldset>
                <button type="submit" onclick="oncli()" >提交</button>
            </fieldset>
        </form>
    </div>
</div>

<script type="text/javascript">
        function oncli() {
            var jQuery = $("#payment").serializeJSON();
            var stringify = JSON.stringify(jQuery);
            alert("整体字符串为:\n"+stringify +"\n 姓名:"+jQuery.name+"\n 邮件地址:"+jQuery.email+"\n 联系电话:"+jQuery.phone);

        }
</script>
</body>
</html>

 

 

对于使用multipart/form-data格式传输数组数据,可以使用以下步骤: 1. 创建一个HTML表单,设置enctype属性为multipart/form-data。 ```html <form action="your_action_url" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="text" name="text"> <input type="submit" value="Submit"> </form> ``` 2. 在后台接收请求的处理程序中,根据编程语言和框架的不同,可以按照以下步骤进行处理。 - 使用表单解析器库(如Multer、Busboy等)解析请求体。这些库可以帮助解析multipart/form-data格式的数据并提取出文件和文本字段。 - 获取数组数据字段的名称和值。根据表单中的字段命名规则,可以在请求的参数中找到相应的数组字段名称和对应的值。 - 解析数组值。根据具体需要,可以使用字符串分割或JSON解析等方法,将数组值解析成可使用的形式。 下面是一个使用Node.js和Multer库处理multipart/form-data格式传输数组数据的示例: ```javascript const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer(); app.post('/your_action_url', upload.fields([{ name: 'arrayField' }]), (req, res) => { // 获取数组字段的值 const arrayValues = req.body.arrayField.split(','); // 处理数组值 // ... res.send('Array data received'); }); app.listen(3000, () => console.log('Server is running on port 3000')); ``` 在上述示例中,`arrayField`表示表单中数组字段的名称。使用`upload.fields`函数将表单数据解析为可供后续处理的形式。在处理程序中,通过`req.body.arrayField`获取数组字段的值,并进行进一步的处理。 请根据您使用的编程语言和框架选择适合的解析库和处理方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值