드코
2k
2019-08-14 11:10:33
3
105

jquery와 jstl을 사용하여 check박스를 체크 시키기


3개의 체크박스가 있습니다.

<input id="productElect" name="productCheck" type="checkbox" onclick="return false;"/>
<input id="productMaking" name="productCheck" type="checkbox" onclick="return false;" />
<input id="productChild" name="productCheck" type="checkbox" onclick="return false;" />

DB에서 해당 3개의 체크박스의 컬럼이 있어 0또는 1의 값을 가지고 있습니다.

화면 로딩 시 1의 값을 가지고있는 컬럼이 있을 경우 체크를 시키려고 합니다.


$('input[name="productCheck"]').each(function() {
	<c:set var="tempId">tempId${$(this).attr('id')}</c:set> // 해당 체크박스들의 id를 가져와 tempID세팅
	if(${productDetail[0].[tempId]} == 1){$("#${productDetail[0].[tempId]}").prop('checked', true);}
});

각 체크박스들의 ID값을 가져와 

jstl 구문인  ${productDetail[0].[tempId]} 에 세팅을 해주어 동적으로 해당 값 체크 후 체크박스의 체크를 시키는 구문을 만들었는데 어디부분이 구문이 틀린지 잘 모르겠습니다.

일단 원리상으론 맞는거 같은데.

0
0
  • 답변 3

  • 드코
    2k
    2019-08-14 11:25:51

    <c:set var="tempId">productChild</c:set>

     

    console.log("${tempId}");

    console.log("${productDetail[0]."+${tempId});


    일단 간단하게 이런식으로 찍어보고있는데


    tempId 까지는 재대로 찍힙니다.

    문제는 

    ${productDetail[0]. 뒤에 가져온 변수명을 어떻게 동적으로 붙히는지가 관건인거 같습니다.

    0
  • Autowired
    125
    2019-08-14 12:40:06 작성 2019-08-14 12:42:40 수정됨

    c:forEach var="변수명" items="${체크박스 목록을 모델에담은 키값명}"

       $("[name=체크박스명]").filter("[value=${변수명}]").prop("checked",true")

    /c:forEach

    0
  • 드코
    2k
    2019-08-14 15:09:54



    <c:set var="tempId">productChild</c:set>

    console.log("${tempId}");

       console.log("${productDetail[0]."+${tempId});

    이거로 예시를 들었을 때

       console.log("${productDetail[0][tempId]);

    이렇게 하면 해결이 됩니다.

    . <- 을 빼고 [아이디] 바로 써주시면 됩니다.

    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.