자바강사 낙자쌤

jQuery의 serialize() 함수 사용하기 본문

jQuery

jQuery의 serialize() 함수 사용하기

낙자쌤™ 2024. 2. 23. 20:58
728x90
반응형

 

jQuery의 Ajax관련 함수에는 요청URL로 전송할 파라미터를 설정할 수 있다. 
그런데 조금 불편한 것이 파라미터를 JSON 객체 형태로 별도 생성해야 한다는 것이다. 
먼저 다음과 같은 폼이 있을때 2가지 방식을 통해 폼값을 정리해 보겠다. 

<form name="myForm">
  <input type="text" name="user_id" value="nakja" />
  <input type="text" name="user_name" value="낙자쌤" />
  <input type="text" name="user_pw" value="1234" />
  <br>
  <button type="button" id="myBtn1">확인1</button>
  <button type="button" id="myBtn2">확인2</button>
</form>


먼저 확인1을 눌렀을때는 serialize()를 사용했다. 
<form> 태그의 DOM을 선택한 후 함수를 호출하기만 하면 하위의 모든 <input> 태그의 값이 조립된다. 

<script>
  $(function(){
    $('#myBtn1').click(function(){
      let formValue = $('form[name=myForm]').serialize();
      console.log(formValue)
    });
</script>

결과

 

 

확인2를 눌렀을때는 <input> 태그의 값을 직접 읽어와서 JSON객체를 생성해야한다. 
만약 input의 갯수가 많다면 엄청 번거로운 작업이 될것이다.(생각하고 싶지도 않다 ㅜㅜ)

<script>
  $(function(){
    $('#myBtn2').click(function(){
      let formValue = {
        "user_id" : $('input[name=user_id]').val(),
        "user_name" : $('input[name=user_name]').val(),
        "user_pw" : $('input[name=user_pw]').val()
      };
      console.log(formValue)
    });
  });
</script>

결과

 

따라서 jQuery 에서 Ajax관련 함수를 통해 폼값을 전송해야 하는 경우에는 serialize() 함수를 사용하는것이 정신건강에 좋

다. 

 

 

728x90
반응형