diff --git a/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp b/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp index cbe7e702..bdb0a03e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp @@ -206,13 +206,18 @@ function imageInit(){ $("#imageFileName").val(""); //이미지 파일명 삭제 } - +/* function validateButtons() { var isValid = true; - + + console.log($('#buttonAddWrap').html()); + var val = ''; // button_add_wrap 하위 input들 중에서 비어있는 항목이 있는지 확인 $('#buttonAddWrap').find('input[type="text"]').each(function() { - if ($(this).val().trim() === '') { + + var val = $(this).val().trim(); + if (val === '') { + console.log($(this).prop('outerHTML')); isValid = false; return false; // .each 루프 중단 } @@ -221,9 +226,55 @@ function validateButtons() { if (!isValid) { alert('버튼명 및 링크를 입력해주세요.'); return false; + }else if (!val.startsWith('http://') && !val.startsWith('https://') ) { + alert('버튼의 링크는 http:// 또는 https:// 형식으로 입력해주세요.'); + $(this).focus(); + return false; } return true; +} */ + +function validateButtons() { + var isValid = true; + + $('.kakaoBtnNmList').each(function() { + var val = $(this).val().trim(); + + // 빈 값 체크 + if (val === '') { + alert('버튼명을 모두 입력해주세요.'); + $(this).focus(); + isValid = false; + return false; // .each 루프 중단 + } + + }); + + if(isValid){ + $('.kakaoBtnList').each(function() { + var val = $(this).val().trim(); + + // 빈 값 체크 + if (val === '') { + alert('링크를 모두 입력해주세요.'); + $(this).focus(); + isValid = false; + return false; // .each 루프 중단 + } + + // http 형식 체크 + if (!val.startsWith('http://') && !val.startsWith('https://')) { + alert('버튼의 링크는 http:// 또는 https:// 형식으로 입력해주세요.'); + $(this).focus(); + isValid = false; + return false; // .each 루프 중단 + } + }); + } + + + return isValid; } //최근 전송내역 @@ -483,14 +534,12 @@ function upImgClick(){ //이미지 선택시 링크 정보 및 url 패턴 검사 console.log('link: ', link); if (!link) { - - if(!confirm("먼저 URL을 입력하지 않으면 이미지에 URL이 저장되지 않습니다. 계속하시겠습니까?")){ return false; } - - - + }else if(!link.startsWith('http://') && !link.startsWith('https://')){ + alert('이동할 URL은 http:// 또는 https:// 형식으로 입력해주세요.'); + return false; } /* else if(link.search("http://") == -1 && link.search("https://") == -1){ @@ -969,6 +1018,12 @@ function fn_noTimeSend(){ //친구톡 데이터 전송 처리 function fn_sendMsgData(){ + // 유효성 검사 실패 시 저장 동작 중단 +/* if (!validateLinks()) { + return false; + } + */ + var senderKey = $("#selectAgentCode option:checked").val(); if(senderKey == ''){ @@ -1343,6 +1398,28 @@ function fn_insertErrorYN(val){ $('#errorChk').val(val); } +//링크 유효성 검증 함수 +function validateLinks() { + + console.log('검사 대상 수:', $('.kakaoBtnList').length); + + let isValid = true; + + $('.kakaoBtnList').each(function () { + const val = $(this).val().trim(); + + console.log('val : ', val); + if (val !== '' && !val.startsWith('http://') && !val.startsWith('https://')) { + alert(`"${val}" 은(는) http:// 또는 https:// 로 시작해야 합니다.`); + $(this).focus(); + isValid = false; + return false; // each 루프 중단 + } + }); + + return isValid; +} + @@ -2020,7 +2097,7 @@ function updateButtons(){