닉추
1k
2022-06-24 17:04:50 작성 2022-06-24 17:14:25 수정됨
3
146

모델에서 넘어온값 자바스크립트로 가져오는 방법


모델에서 넘어온 user라는 키 값으로 html에 아래처럼 뿌렸는데

<tbody>
<tr th:each="user : ${user}" id="userArray">
<td><input th:type="checkbox" th:name="userSelect" id="userSelect" th:value="${user.user_Auth}"></td>
<td><th:block th:text="${user.user_Id}" /></td>
<td th:name="userName" th:text="${user.user_Name}" th:value="${user.user_Name}"/><br>
</tr>
</tbody>


자바스크립트에서 아래처럼 했는데 첫번째 값 하나만 들고와서 전체 배열값을 들고 오는 방법이 어떻게 될까요

$(document).ready(function(){

if(document.getElementById("userSelect").value=='ROLE_USER'){
document.getElementById("userSelect").setAttribute('checked','checked');
document.getElementById("userSelect").setAttribute('disabled','disabled');
}
});

전체 값을 들고와서 user_Auth값이 ROLE_ADMIN이면 전부 체크된 상태로 만들려고 합니다

0
  • 답변 3

  • 아이디
    1k
    2022-06-24 17:43:00


    document.querySelectorAll('input[type="checkbox"][name="userSelect"]').forEach(function(x,y) {
        if(x.value == 'ROLE_USER') {
            x.setAttribute('checked','checked');
            x.setAttribute('disabled','disabled');
        }
    });


  • Myoungdo Park
    331
    2022-06-24 17:44:38

    id 는 html document 상에 유일해야 합니다. 그렇기 때문에 매치되는 하나의 element 를 가져오는 것이구요. 여러 개의 elements 를 가리키려면 class 를 사용하세요. document.getElementsByClassName() 함수로 elements 를 얻어 올 수 있어요.

  • 닉추
    1k
    2022-06-24 20:00:55

    감사합니다 forEach가 배열 요소 하나하나 비교 할수 있는건가 보네요..

    id중복된다는걸 생각못했네요 ㅎ..getElementsByClassName으로도 구현 해보겠습니다..

    감사합니다!

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