상세 컨텐츠

본문 제목

[jQuery] select multiple value 받기

Javascript

by 코딩하는 박줄기 2022. 9. 21. 22:40

본문

728x90
반응형

<select> 태그의 multiple 속성이 있는 상황에서 .serialize() 메서드를 사용해 Controller로 직렬화된 데이터를 받는 상황에서 유용한 메서드입니다.

 

사용법

<form>
    <input type="text" value="" name="text1" />
    <input type="text" value="" name="text2" />
    <input type="checkbox" name="checkbox1" />
    <input type="checkbox" name="checkbox2" />
    <input type="checkbox" name="checkbox3" />
    <select name="select1" multiple>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
	</select>
    <select name="select2" multiple>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
	</select>
    <button type="button" id="submit">제출</button>
</form>
<script>
        $(document).ready(function () {
            $('#submit').on('click', function () {
                let FormData = GetFormData();

                $.post('@Url.Action("Submit")', FormData, function (data) {
                    console.log(data);
                })
            })
        })

    function GetFormData($form) {
        var t_Array = $('form').serializeArray();
        var rtnVal_Array = {
            select1: "",
            select2: ""
        };

        $.each(t_Array, function (index, item) {
            if (item.name == 'select1' || item.name == 'select2') {
                rtnVal_Array[item.name] += item.value + ",";
            } else {
                rtnVal_Array[item.name] = item.value;
            }
        });

        rtnVal_Array.select1 = rtnVal_Array.select1.substring(0, rtnVal_Array.select1.length - 1);
        rtnVal_Array.select2 = rtnVal_Array.select2.substring(0, rtnVal_Array.select2.length - 1);

        return rtnVal_Array;
    }
</script>

 

참고

728x90
반응형

관련글 더보기

댓글 영역