728x90
input 태그에 에 JSON으로 데이터 전달
input 태그를 사용하다 보면 value 값으로 데이터를 한 번에 여러개를 전달하는 일이 생깁니다.
그냥 일차원 적으로 value="값1, 값2, 값3" 이렇게 생각을 할 수도 있는데, 이렇게 코딩을 하면
value 값을 자바스크립트로 뽑아낼 수는 있으나.. 비효율적인 코딩 입니다.
한 번에 여러 데이터를 전달하고 싶다면, Key : Value 로 이루어진 오브젝트 형인 JSON 형태로 전달을 하는게 깔끔합니다.
JSON
JSON은 Key : Value 로 구성하여 만듭니다.
{
key1 : value1,
key2 : value2,
key3 : value3,
key4 : value4,
key5 : value5
}
반응형
JSON 데이터 전달하기
<input type="hidden" id="test" value="">
let jsonTest = {
no : 1,
productName : "컴퓨터",
price : 200000
};
$("#test").val(jsonTest);
이렇게 하면 간단하게 데이터는 전달이 됩니다.
하지만 전달된 데이터를 확인해보면 value="[object Object]" 형식의 단순한 텍스트가 들어가버립니다.
그냥 텍스트입니다. 그래서 JSON 데이터를 전달할 때에는 String 으로 변환해서 전달해야 합니다.
$('#test').val(JSON.stringify(jsonTest));
728x90
JSON 데이터 가져오기
가져올 때는 전달 할 때와 반대로, String을 JSON 으로 변환하여 가져와야 합니다.
let data = JSON.parse($('#test').val());
주의사항
input에 JSON 형태의 문자열을 미리 셋팅하거나 스크립트단에서 문자열로 태그 생성 후 html에 밀어 넣어줄 때 주의해야 될 점이 있습니다.
input value에 쌍따옴표(")를 넣게 되면 인식 값으로 인식을 못하고 데이터가 끊기는 현상이 나타나기 때문에 쌍다옴표를 치환해서 넣어줘야 합니다.
728x90
'프로그래밍 > Javascript' 카테고리의 다른 글
JavaScript에서 return과 break 명령문의 차이점과 사용법 (0) | 2023.06.22 |
---|---|
Ajax Json Array(json배열) 컨트롤러로 전달하기 (2) | 2020.07.22 |
[jQuery(제이쿼리)] .not() 을 사용하여 특정 요소(선택자)를 제외하고 선택하기 (0) | 2020.07.20 |
[jQuery/javascript] JSTL을 사용하여 select box 값 고정하기 (0) | 2020.07.20 |
input 입력시 천 단위마다 자동으로 콤마(,) 입력 (0) | 2020.06.23 |