feat: 하향식 탄성파 시험 단위 선택시 기본 단위 "MPa"로 설정

main
thkim 2024-07-15 15:48:21 +09:00
parent e0e04e891f
commit b89ee534f4
2 changed files with 102 additions and 9 deletions

View File

@ -158,15 +158,6 @@ public class ProjectListController {
model.addObject("result", "false"); model.addObject("result", "false");
model.addObject("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력 해주세요."); model.addObject("message", "해당 사업명이 이미 있습니다. 다른 사업명으로 입력 해주세요.");
model.setViewName("redirect:/index_db.do"); model.setViewName("redirect:/index_db.do");
model.addObject("rUrl",rUrl);
response.setCharacterEncoding("euc-kr");
PrintWriter writer = response.getWriter();
writer.println("<script type='text/javascript'>");
writer.println("alert('해당 사업명이 이미 있습니다. 다른 사업명으로 입력 해주세요.');");
writer.println("history.go(-1);");
writer.println("</script>");
writer.flush();
return null; return null;
} }

View File

@ -146,6 +146,102 @@
document.frmSelect.submit(); 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) { function fn_referenceDiv(chkId, divId) {
@ -203,6 +299,12 @@
kendoJQuery("#" + divId).removeClass("trViewOff"); kendoJQuery("#" + divId).removeClass("trViewOff");
kendoJQuery("#" + divId).html(data); kendoJQuery("#" + divId).html(data);
// 하향식탄성파에서 '전단탄성계수' 및 '영률'의 MPa단위를 기본값으로 설정한다.
//전단탄성계수
setDefaultUnit('DH_SHEAR_MODULUS', 'mpa');
//영률
setDefaultUnit('DH_YOUNGS_MODULUS', 'mpa');
} }
}); });
} else { } else {