웹 프론트엔드 프런트엔드 Q&A javascript에서 양식 양식을 json 문자열로 변환하는 방법

javascript에서 양식 양식을 json 문자열로 변환하는 방법

Apr 25, 2023 am 10:42 AM

현대 웹 개발에서 JavaScript는 필수적인 부분이 되었습니다. 클라이언트 측 스크립팅 언어인 JavaScript는 HTML 및 CSS와 매우 편리하게 상호 작용하여 동적 사용자 상호 작용과 풍부한 사용자 경험을 달성할 수 있습니다.

그 중에서 양식은 웹 애플리케이션에서 가장 일반적이고 중요한 상호 작용 방법 중 하나입니다. 양식을 통해 사용자는 쉽게 데이터를 입력하고 제출할 수 있으며, 개발자는 이 데이터를 쉽게 얻고 처리할 수 있습니다.

JavaScript에서 HTML 양식 데이터를 JSON 형식 데이터로 변환하는 방법은 무엇입니까? 이는 일반적인 요구 사항이며 이 문서에서는 이를 구현하는 방법을 설명합니다.

1. HTML 양식 기본

시연 및 설명의 편의를 위해 먼저 간단한 HTML 양식 코드를 살펴보겠습니다.

<form>
  <label for="username">用户名:</label>
  <input type="text" id="username" name="username"><br>
  
  <label for="password">密码:</label>
  <input type="password" id="password" name="password"><br>
  
  <label>性别:</label>
  <input type="radio" name="gender" value="male" id="male"><label for="male">男</label>
  <input type="radio" name="gender" value="female" id="female"><label for="female">女</label><br>
  
  <label>爱好:</label>
  <input type="checkbox" name="hobby" value="reading" id="reading"><label for="reading">阅读</label>
  <input type="checkbox" name="hobby" value="travel" id="travel"><label for="travel">旅游</label>
  <input type="checkbox" name="hobby" value="music" id="music"><label for="music">音乐</label><br>
  
  <label for="comment">评论:</label>
  <textarea id="comment" name="comment"></textarea><br>
  
  <input type="submit" value="提交">
</form>
로그인 후 복사

이것은 입력 상자, 라디오 상자, 확인란, 텍스트 필드 및 제출 버튼을 포함하는 코드입니다. 형태. 입력 상자에 텍스트를 입력하고 라디오 상자와 확인란에서 옵션을 선택한 다음 마지막으로 제출 버튼을 클릭하여 양식 데이터를 서버에 제출할 수 있습니다.

각 양식 요소에는 이름 속성과 값 속성이 있습니다. name 속성은 이 요소의 이름을 식별하는 데 사용되며, value 속성은 사용자가 입력한 값을 저장하는 데 사용됩니다.

2. 양식 데이터 가져오기

JavaScript에서는 양식 요소의 값 속성에 액세스하여 사용자가 입력한 데이터를 가져올 수 있습니다. 예를 들어 사용자 이름과 비밀번호 값을 얻으려면 다음과 같이 할 수 있습니다.

var username = document.getElementById("username").value; // 获取用户名
var password = document.getElementById("password").value; // 获取密码
로그인 후 복사

마찬가지로 다른 양식 요소의 값도 얻을 수 있습니다.

3. 양식 데이터를 JSON 형식으로 변환

실제 개발에서는 일반적으로 저장 또는 전송을 위해 양식 데이터를 JSON 형식의 데이터로 변환해야 합니다. 아래에서는 이 기능을 구현하는 방법을 소개합니다.

먼저 제출 기능을 양식에 바인딩해야 합니다. 이 함수에서는 다음 단계에 따라 양식 데이터를 가져와 JSON 형식으로 변환할 수 있습니다.

document.getElementById("form").addEventListener("submit", function(event) {
  event.preventDefault(); // 阻止表单的默认提交行为
  
  var form = document.getElementById("form");
  var data = new FormData(form);
  
  var json = {};
  data.forEach(function(value, key) {
    if (json[key] !== undefined) {
      if (!Array.isArray(json[key])) {
        json[key] = [json[key]];
      }
      json[key].push(value);
    } else {
      json[key] = value;
    }
  });
  
  console.log(json); // 输出JSON格式的数据
});
로그인 후 복사

여기에서는 FormData 개체를 사용하여 양식 데이터를 가져옵니다. 이 객체는 모든 양식 요소의 값 가져오기, 지정된 양식 요소의 값 가져오기 등과 같이 양식 데이터를 처리하는 몇 가지 일반적인 방법을 제공합니다.

그런 다음 FormData 개체를 JSON 형식 데이터로 변환해야 합니다. 구체적인 구현 방법은 다음과 같습니다.

  1. FormData 개체의 요소를 하나씩 탐색하여 해당 요소의 이름 및 값 속성 값을 가져옵니다.
  2. 현재 이름 속성이 이미 나타나면 배열로 간주됩니다. 이는 양식의 일부 요소가 동일한 이름을 가질 수 있기 때문입니다. 예를 들어 여러 확인란이 모두 "hobby"라는 이름 속성을 가질 수 있습니다.
  3. 해당 배열에 현재 값(값)을 추가하여 여러 체크박스의 값을 저장합니다.
  4. 그렇지 않으면 현재 값(value)을 JSON 개체(json)에 속성 값으로 직접 추가하세요.

여러 개의 확인란과 같이 양식에 동일한 이름을 가진 요소가 여러 개 있는 경우 해당 값을 배열에 저장해야 합니다. 따라서 FormData 객체를 순회할 때 해당 값(value)이 이미 배열인지 확인해야 합니다. 그렇지 않은 경우 배열로 변환해야 합니다.

마지막으로 변환된 JSON 형식 데이터를 console.log를 통해 출력할 수 있습니다. 이 데이터는 직렬화, 저장 또는 전송에 사용될 수 있습니다.

4. 요약

이번 글에서는 자바스크립트에서 양식 데이터를 JSON 형식의 데이터로 변환하는 방법을 소개했습니다. FormData 개체 및 순회 양식 요소와 같은 메서드를 사용하면 이 기능을 쉽게 구현할 수 있으므로 보다 유연하고 효율적인 데이터 처리가 가능합니다. 프론트엔드 개발, 백엔드 개발 또는 모바일 애플리케이션 개발에서 이 기술은 중요한 부분이며 개발자가 숙지하고 사용할 가치가 있습니다.

위 내용은 javascript에서 양식 양식을 json 문자열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

게으른 하중의 개념을 설명하십시오. 게으른 하중의 개념을 설명하십시오. Mar 13, 2025 pm 07:47 PM

게으른 하중의 개념을 설명하십시오.

useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까? useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까? Mar 19, 2025 pm 03:58 PM

useeffect 란 무엇입니까? 부작용을 수행하는 데 어떻게 사용합니까?

React Reconciliation 알고리즘은 어떻게 작동합니까? React Reconciliation 알고리즘은 어떻게 작동합니까? Mar 18, 2025 pm 01:58 PM

React Reconciliation 알고리즘은 어떻게 작동합니까?

카레는 JavaScript에서 어떻게 작동하며 그 이점은 무엇입니까? 카레는 JavaScript에서 어떻게 작동하며 그 이점은 무엇입니까? Mar 18, 2025 pm 01:45 PM

카레는 JavaScript에서 어떻게 작동하며 그 이점은 무엇입니까?

usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까? usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까? Mar 19, 2025 pm 03:59 PM

usecontext는 무엇입니까? 구성 요소간에 상태를 공유하는 데 어떻게 사용합니까?

JavaScript의 고차 기능은 무엇이며 어떻게 간결하고 재사용 가능한 코드를 작성하는 데 어떻게 사용할 수 있습니까? JavaScript의 고차 기능은 무엇이며 어떻게 간결하고 재사용 가능한 코드를 작성하는 데 어떻게 사용할 수 있습니까? Mar 18, 2025 pm 01:44 PM

JavaScript의 고차 기능은 무엇이며 어떻게 간결하고 재사용 가능한 코드를 작성하는 데 어떻게 사용할 수 있습니까?

각 라이프 사이클 방법의 목적과 사용 사례를 설명하십시오. 각 라이프 사이클 방법의 목적과 사용 사례를 설명하십시오. Mar 19, 2025 pm 01:46 PM

각 라이프 사이클 방법의 목적과 사용 사례를 설명하십시오.

제어 및 제어되지 않은 구성 요소의 장점과 단점은 무엇입니까? 제어 및 제어되지 않은 구성 요소의 장점과 단점은 무엇입니까? Mar 19, 2025 pm 04:16 PM

제어 및 제어되지 않은 구성 요소의 장점과 단점은 무엇입니까?

See all articles