Frontend/HTML + JAVASCRIPT

[javascript] table > tr 에 display none, block 적용시 오류

미도반 2022. 10. 24. 15:34

Radio 버튼 클릭 시 원하는 tr 영역을 숨기고 나타나게 하려고 한다.

- 브라우져 : 크롬

 

 

- JavaScript Code

function viewFrmReschedule(val, cd_reschedule){
	
	$("#frmModifyReschedule").css("display","block");
	frmReschedule.cd_reschedule.value = cd_reschedule;
	
	if("CHANGE_YMD_END" === cd_reschedule){
		$("#viewModiYmdContEnd").css("display","block");
		$("#viewModiRtoNormal").css("display","none");
	}else if ("CHANGE_RTO" === cd_reschedule){
		$("#viewModiRtoNormal").css("display","block");
		$("#viewModiYmdContEnd").css("display","none");
	}
}

 

- Html Code

<table class="tbl">
    <colgroup>
        <col width="8%">
        <col width="20%">
        <col width="8%">
        <col width="*">
    </colgroup>
    <tbody>
        <tr>
            <th>상환방법</th>
            <td>
                ${ufn:getCodeName('cd_int_receipt_method', contInfo.cd_int_receipt_method)}
            </td>
            <th>대출기간</th>
            <td>${contInfo.cnt_contract_term}</td>
        </tr>
        <tr id="viewModiYmdContEnd">
            <th>만기일</th>
            <td>
                기존 : ${ufn:formatDate(contInfo.ymd_contract_end)} / 변경 : 
                <input type="text" class="datepick txCenter wid80" name="ymd_contract_end">
            </td>
            <th></th>
            <td></td>
        </tr>
        <tr id="viewModiRtoNormal">
            <th>변경회차</th>
            <td>
                <input type="text" name="cnt_expect_repayment" style="width: 30px;"> 회차
            </td>
            <th>이율변경</th>
            <td>
                기존이율 : ${contInfo.rto_normal}% / 변경 : <input type="text" name="rto_normal" style="width: 40px; text-align: center;"> % 
            </td>
        </tr>
    </tbody>
</table>

 

 

이슈

- tr을 display 할 때 colgroup이 적용 되지 않음.

 

원인

- javacript에 jQuery로 css("display","block") 하는 부분이 문제됨.

 

display를 보여 주는 기능인 block 대신 '' 빈값을 쓰던지, table-row 를 사용하면 해결 된다.

(table-row 가 표준이라는 말이 있음)

 

1. '' 빈 값을 적용한 경우(아직 원인 모름)

- 테이블 넓이가 100%인데 팝업 전체를 100%로 인식해서 colgroup이 적용 됨.

 

 

2. table-row 를 적용한 경우(아직 원인 모름)

- 마찬가지로 테이블 넓이가 100%인데 일저 영역이 100%가 됨. 그래서 테이블 넓이를 200%로 해서 적용 한 화면임. 그래서 colgroup도 다 합산이 100%  넘어가게 설정해야 제대로 화면이 이쁘게 나옴.

 

 

아마튼 결론은 block 처리 하는건 오류를 다수 발생시키고 내가 원하는 설정을 표시 못하는 경우가 발생한다고 함.

빈값이나 table-row를 사용하자. 위 처럼 다른 이유는 퍼블리셔 분께 문의할 예정.