개인정보 제공 동의 체크박스를 추가하겠습니다. 먼저 현재 폼 구조를 확인합니다.
개인정보 제공 동의 체크박스를 추가하겠습니다. state, 검증 로직, 그리고 폼 UI를 업데이트합니다.
体 닫힐 때 동의 상태도 초기화하고, 검증에 동의 여부를 추가합니다.
이제 폼 UI에 동의 체크박스를 추가합니다. 연락처 입력 다음, 버튼 위에 배치합니다.
마지막으로 모달이 닫힐 때 동의 상태도 초기화되도록 처리합니다.
신청 폼에 [필수] 개인정보 수집·이용 동의 체크박스를 연락처 입력 아래, 신청 완료 버튼 위에 추가했습니다. 동의하지 않고 제출하면 "개인정보 제공에 동의해 주세요" 경고가 뜨며 전송이 막히고, 모달을 닫으면 동의 상태도 초기화됩니다. 이어서 말씀하신 EmailJS 메일 전송 방식으로 전환할 준비가 되면 알려주세요.
다시 구글 스프레드 시트에 연동할거야
구글 스프레드시트 웹앱과 에러 없이 연동하기 위해 '신청 완료' 버튼의 제출(onSubmit) 로직을 아래와 같이 수정해 줘.
현재 제출 로직을 확인하고 요청하신 방식으로 수정하겠습니다.
URL과 전송 방식을 요청하신 사양에 맞게 수정하겠습니다.
제출 로직을 요청하신 사양으로 수정했습니다. 새 웹앱 URL로 변경했고, fetch를 method: 'POST', mode: 'no-cors', headers: { 'Content-Type': 'text/plain' } 옵션과 함께 JSON.stringify({ name, phone }) 형태의 body로 전송하도록 구성했습니다. 접수 시간은 Apps Script의 doPost에서 new Date()로 서버에서 기록하면 시트의 [접수시간, 성함, 연락처] 구조에 맞게 저장되며, 전송이 끝나면 기존 setSubmitted(true) 로직이 그대로 실행되어 신청 완료 화면이 정상적으로 표시됩니다.
이제 GTM 연동하자
<!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-P2FPVBK2');</script> <!-- End Google Tag Manager --> <!-- Google Tag Manager (noscript) --><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P2FPVBK2" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->헤더와 바디 부분에 입력하고 GTM 연동해줘