JSON 또는 외부 lib를 사용하지 않고 서버에서 클라이언트 문자열로 문자열 배열을 변환하고 싶습니다. 서버 측은 클라이언트 렌더링을 위해 String[] xArray = new String[] { "1", "2", "3" }
을 "1, 2, 3"
으로 변환합니다. 다음 JavaScript 함수는 서버 문자열을 구문 분석하고 확인란을 배열 값과 비교합니다. 일치하면 해당 확인란을 선택해야합니다.자바 문자열에서 자바 스크립트 문자열 배열로 체크 박스 검사하기
function loadCheckBoxes() {
var ids = '<%= request.getSession().getAttribute("idsFromServer") %>';
if (ids != null && ids !== '') {
var idsArray = String.valueOf(ids).indexOf(',') == -1 ? [ids] : ids.split(',');
var checkboxes = document.getElementsByClassName('gridIds');
for (var i = 0; i < checkboxes.length; i++) {
var index = idsArray.indexOf(checkboxes[i].value);
if (index >= 0) {
var foundId = idsArray[index];
if (checkboxes[i].value == foundId) {
checkboxes[i].checked = true;
}
}
}
}
}
테스트 실행을위한 JSFiddle입니다.
내 배열을 분할 한 후 예상 결과 :, 해당 확인란을 선택해야합니다. 솔루션에
귀하 코드 샘플 d 링크 된 JSFiddle에서 iffer ... 귀하의 게시물에 코드 위대한 작품 : http://jsfiddle.net/mjvLd/16/ – mellamokb
@ mellamokb 실제로 바이올린 작동하지 않습니다. 의견을 확인하십시오. 작동하지 않는 솔루션의 경우 "9"및 "133"확인란을 선택해야합니다. – axcdnt
아니요, 기능적으로 다른 것은 아닙니다. 게시 된 코드에 JSFiddle 코드에없는 버그가 있습니다. JSFiddle에서 split 배열이 아닌 문자열 색인을 반환하는'ids [index]'를 사용합니다. 그러나 분리 된 배열을 별도의 변수'idsArray'에 저장하기 때문에 위의 코드 샘플에서 맞습니다. 데모를 제공하려면 동일한 코드를 사용해야합니다. – mellamokb