>  기사  >  웹 프론트엔드  >  jquery 양식 데이터를 json 데이터로 변환

jquery 양식 데이터를 json 데이터로 변환

PHPz
PHPz원래의
2023-05-28 14:43:381659검색

프런트 엔드 개발이 발전하면서 점점 더 많은 웹사이트와 애플리케이션에서 양식 제출 방법이 기존 동기 요청에서 비동기 요청으로 변경되었습니다. 이 과정에서 프런트엔드는 양식의 데이터를 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의 키 배열로 만듭니다. 그런 다음 변환된 JSON 데이터를 저장하기 위해 빈 개체 jsonData를 만듭니다. 마지막으로 $.each() 메서드를 사용하여 양식 데이터 배열을 탐색하고 각 키-값 쌍을 jsonData에 추가합니다. 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()

위 코드는 양식에서 반복되는 키-값 쌍을 처리하기 위해 판단문을 사용한다는 점에 유의해야 합니다. 반복되는 속성 이름이 발견되면 배열로 변환되고 해당 배열에 새로운 값이 추가됩니다. 🎜🎜완전한 예시는 다음과 같습니다. 🎜rrreee🎜이렇게 하면 양식 데이터를 JSON 형식으로 성공적으로 변환했으며 Ajax 요청을 통해 백엔드로 보낼 수 있습니다. 동시에 양식을 제출하기 전에 기본 동작을 방지해야 한다는 점에 유의해야 합니다. 여기서는 event.preventDefault() 메서드를 사용합니다. 🎜

위 내용은 jquery 양식 데이터를 json 데이터로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.