jquery表单数据转json数据

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

jquery表单数据转json数据

随着前端开发的发展,越来越多的网站、应用将表单提交方式从传统的同步请求转变为了异步请求。在这个过程中,前端需要将表单中的数据转换为JSON格式,然后通过Ajax请求发送到后端进行处理。而这就需要我们掌握一些相关的技术。

当我们使用jQuery操作表单时,可以通过以下代码将表单数据转换为JSON格式:

var formData = $('form').serializeArray(); // 将表单序列化为键值对数组var jsonData = {};$.each(formData, function() {    if (jsonData[this.name]) { // 如果json中已经有了该属性,则将其转换为数组        if (!jsonData[this.name].push) {            jsonData[this.name] = [jsonData[this.name]];        }        jsonData[this.name].push(this.value || '');    } else {        jsonData[this.name] = this.value || ''; // 如果是第一次添加该属性,则直接加入json中    }});
登录后复制

上述代码中,我们首先使用serializeArray()方法将表单序列化为一个键值对数组formData。接着我们创建一个空对象jsonData来存储转换后的JSON数据。最后使用$.each()方法遍历表单数据数组,并将每个键值对添加到jsonData中。

需要注意的是,上述代码中使用了判断语句来处理表单中键值对重复的情况,遇到重复的属性名时将其转换为数组,并将新的值添加到数组中。

完整的例子如下:

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>表单数据转JSON数据</title>    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>    <script>        $(document).ready(function() {            $('form').submit(function(event) {                event.preventDefault(); // 阻止表单提交                var formData = $(this).serializeArray(); // 将表单序列化为键值对数组                var jsonData = {};                $.each(formData, function() {                    if (jsonData[this.name]) { // 如果json中已经有了该属性,则将其转换为数组                        if (!jsonData[this.name].push) {                            jsonData[this.name] = [jsonData[this.name]];                        }                        jsonData[this.name].push(this.value || '');                    } else {                        jsonData[this.name] = this.value || ''; // 如果是第一次添加该属性,则直接加入json中                    }                });                console.log(jsonData); // 打印转换后的JSON数据,可以通过Ajax请求发送到后端进行处理            });        });    </script></head><body>    <form>        <label>姓名:</label>        <input type="text" name="name" value="张三"><br>        <label>性别:</label>        <input type="radio" name="gender" value="male" checked>男        <input type="radio" name="gender" value="female">女<br>        <label>爱好:</label>        <input type="checkbox" name="hobby" value="reading" checked>阅读        <input type="checkbox" name="hobby" value="music">音乐        <input type="checkbox" name="hobby" value="travel">旅游<br>         <button type="submit">提交</button>    </form></body></html>
登录后复制

这样,我们就成功将表单数据转换为了JSON格式,并可以将其通过Ajax请求发送到后端。同时,需要注意的是,表单在提交之前需要阻止默认行为,这里我们使用了event.preventDefault()方法。

以上就是jquery表单数据转json数据的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:注意,Vue响应性语法糖已废弃!
下一篇:详解vagrant搭建的php7环境

发表评论

关闭广告
关闭广告