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로 던진 데이터 값은 변수로 선언해 아래 처럼 가져오면되고

데이터값이 없을때를 대비해 코드뒤에 ""를 붙여처리한다