JavaScript
seleced 유지, 삼항연산자사용, thymeleaf js 데이터사용
ds-jeung
2022. 7. 12. 17:09
/*<![CDATA[*/
let searchYear = /*[[ ${searchParam.searchYear} ]]*/ "";
let searchMonth = /*[[ ${searchParam.searchMonth} ]]*/ "";
let now = new Date();
let nyear = now.getFullYear();
let nmon = (now.getMonth()+1) > 9 ? ''+(now.getMonth()+1) : '0'+(now.getmonth()+1);
//기존코드
for(let sy = 2016 ; sy <= nyear ; sy++) {
$('#fd_year').append('<option value="' + sy + '" ' +sy == searchYear ? "selected" : "" +' >' + sy + '년</option>');
}
//괄호처리한 코드
for(let sy = 2016 ; sy <= nyear ; sy++) {
$('#fd_year').append('<option value="' + sy + '" ' +( (sy == searchYear) ? "selected" : "")+' >' + sy + '년</option>');
}
/*]]*/
* 코드부분을 보면 HTML코드에서 사용하는 삼항연산자인데 처리가 안되었다
알고보니 append로 추가하는 HTML코드에서는 괄호처리를 해야한다고한다
괄호처리한 코드로 다시 리로드하니 검색후에도 selected가 유지된다
/*<![CDATA[*/
let searchYear = /*[[ ${searchParam.searchYear} ]]*/ "";
/*]]*/
* 추가로 thymeleaf를 js안에서 사용할때는
thymeleaf코드를 사용할 수 있게 CDATA 선언부를 만들고 그안에서 코드처리를 해야한다
controller에서 model로 던진 데이터 값은 변수로 선언해 아래 처럼 가져오면되고
데이터값이 없을때를 대비해 코드뒤에 ""를 붙여처리한다