From b89ee534f4b007425db1296d2006a0ed8a039f59 Mon Sep 17 00:00:00 2001 From: thkim Date: Mon, 15 Jul 2024 15:48:21 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=95=98=ED=96=A5=EC=8B=9D=20=ED=83=84?= =?UTF-8?q?=EC=84=B1=ED=8C=8C=20=EC=8B=9C=ED=97=98=20=EB=8B=A8=EC=9C=84=20?= =?UTF-8?q?=EC=84=A0=ED=83=9D=EC=8B=9C=20=EA=B8=B0=EB=B3=B8=20=EB=8B=A8?= =?UTF-8?q?=EC=9C=84=20"MPa"=EB=A1=9C=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projectList/ProjectListController.java | 9 -- .../web/input/selectClass/selectClassInfo.jsp | 102 ++++++++++++++++++ 2 files changed, 102 insertions(+), 9 deletions(-) diff --git a/src/main/java/geoinfo/regi/projectList/ProjectListController.java b/src/main/java/geoinfo/regi/projectList/ProjectListController.java index d73e4f17..8c61be8d 100644 --- a/src/main/java/geoinfo/regi/projectList/ProjectListController.java +++ b/src/main/java/geoinfo/regi/projectList/ProjectListController.java @@ -158,15 +158,6 @@ public class ProjectListController { model.addObject("result", "false"); model.addObject("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력 해주세요."); model.setViewName("redirect:/index_db.do"); - model.addObject("rUrl",rUrl); - - response.setCharacterEncoding("euc-kr"); - PrintWriter writer = response.getWriter(); - writer.println(""); - writer.flush(); return null; } diff --git a/src/main/webapp/WEB-INF/views/web/input/selectClass/selectClassInfo.jsp b/src/main/webapp/WEB-INF/views/web/input/selectClass/selectClassInfo.jsp index 108b318c..90165543 100644 --- a/src/main/webapp/WEB-INF/views/web/input/selectClass/selectClassInfo.jsp +++ b/src/main/webapp/WEB-INF/views/web/input/selectClass/selectClassInfo.jsp @@ -145,7 +145,103 @@ document.frmSelect.submit(); } + + function isAnyRadioChecked(radioName) { + var radios = document.getElementsByName(radioName); + for (var i = 0; i < radios.length; i++) { + if (radios[i].checked) { + return true; // 선택된 radio 버튼이 있으면 true 반환 + } + } + return false; // 선택된 radio 버튼이 없으면 false 반환 + } + + function findRadioByLabelText(inputRadioName, labelText) { + labelText = myTrim(String(labelText)); // 텍스트 공백 제거 + var labels = document.getElementsByTagName("label"); + + for (var i = 0; i < labels.length; i++) { + var labelTextContent = labels[i].textContent || labels[i].innerText; + labelTextContent = myTrim(String(labelTextContent)); // 텍스트 공백 제거 + + if (labelTextContent.indexOf(labelText) !== -1) { + // label 내부의 input 요소들을 가져옴 + var inputElements = labels[i].getElementsByTagName("input"); + + for (var j = 0; j < inputElements.length; j++) { + var radioInput = inputElements[j]; + // radio 타입이고, name 속성이 일치하는지 확인 + if (radioInput.type === "radio" && radioInput.name === inputRadioName) { + return radioInput; // 일치하는 radio 버튼 반환 + } + } + } + } + return null; // 해당 텍스트를 가진 radio 버튼을 찾지 못한 경우 + } + + + + function extractRadioLabelsByTableHeadText(headText) { + var tableRows = document.getElementsByTagName("tr"); // 모든 tr 요소 가져오기 + var labels = []; + + for (var i = 0; i < tableRows.length; i++) { + var headCell = tableRows[i].querySelector('.td-head'); // td-head 클래스 찾기 + + if (headCell && headCell.textContent === headText) { // 텍스트 비교 + var radioLabels = tableRows[i].getElementsByTagName("label"); // 하위 label 요소 가져오기 + + for (var j = 0; j < radioLabels.length; j++) { + var labelText = radioLabels[j].textContent || radioLabels[j].innerText; // IE 호환성 + labels.push(labelText); // label 텍스트 배열에 추가 + } + break; // "전단탄성계수"를 찾았으므로 반복 종료 + } + } + + return labels; // label 텍스트 배열 반환 + } + + + function extractRadioLabelsByName(inputName) { + var radios = document.getElementsByName(inputName); // name 속성으로 radio 버튼 가져오기 + var labels = []; + + for (var i = 0; i < radios.length; i++) { + var radio = radios[i]; + // radio 버튼의 label 찾기 (for 속성 이용) + var label = document.querySelector('label[for="' + radio.id + '"]'); + + if (label) { + var labelText = label.textContent || label.innerText; // IE 호환성 + labelText = myTrim(labelText); + labels.push(labelText); // label 텍스트 배열에 추가 + } + } + + return labels; // label 텍스트 배열 반환 + } + + function myTrim(str) { + return str.replace(/^\s+|\s+$/g, ''); + } + + function setDefaultUnit(inputRadioName, unitLowerCase) { + + if ( isAnyRadioChecked(inputRadioName) == false ) { + var labels = extractRadioLabelsByName(inputRadioName); + console.log(labels); + for (var i = 0; i < labels.length; i++) { + if( String(labels[i]).toLowerCase() == unitLowerCase ) { + var targetRadio = findRadioByLabelText(inputRadioName, String(labels[i])); + targetRadio.checked = true; + } + } + } + } + //단위 팝업 function fn_referenceDiv(chkId, divId) { @@ -203,6 +299,12 @@ kendoJQuery("#" + divId).removeClass("trViewOff"); kendoJQuery("#" + divId).html(data); + + // 하향식탄성파에서 '전단탄성계수' 및 '영률'의 MPa단위를 기본값으로 설정한다. + //전단탄성계수 + setDefaultUnit('DH_SHEAR_MODULUS', 'mpa'); + //영률 + setDefaultUnit('DH_YOUNGS_MODULUS', 'mpa'); } }); } else {