이재호

add input error detect

...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
7 <!-- 합쳐지고 최소화된 최신 CSS --> 7 <!-- 합쳐지고 최소화된 최신 CSS -->
8 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> 8 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
9 <link rel='stylesheet' href='/stylesheets/style.css' /> 9 <link rel='stylesheet' href='/stylesheets/style.css' />
10 -<<<<<<< HEAD
11 -=======
12 <!-- Jquery를 불러온다 --> 10 <!-- Jquery를 불러온다 -->
13 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 11 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
14 <script> 12 <script>
...@@ -20,7 +18,40 @@ ...@@ -20,7 +18,40 @@
20 var numArr = []; // 전화번호를 저장할 배열 18 var numArr = []; // 전화번호를 저장할 배열
21 var idArr = []; // 신분을 저장할 배열 19 var idArr = []; // 신분을 저장할 배열
22 var dayTimeArr = []; // 날짜와 시간을 저장할 배열 20 var dayTimeArr = []; // 날짜와 시간을 저장할 배열
23 - 21 +
22 + function checkInput() // 입력값이 공백이니 아닌지 확인
23 + {
24 + if(document.getElementById('name').value == "" || document.getElementById('number').value == "")
25 + {
26 + alert("이름과 전화번호를 정확히 기입해 주세요.");
27 + clear();
28 + return;
29 + }
30 + getInfo();
31 + };
32 + function checkName() // 올바른 이름 형태인지 확인
33 + {
34 + var name = document.getElementById('name').value;
35 + var regex = /^[가-힣]{2,4}|[a-zA-Z]{2,10}\s[a-zA-Z]{2,10}$/;
36 + if (!(regex.test(name)))
37 + {
38 + alert("이름을 정확히 입력해 주세요.");
39 + document.getElementById('name').value = "";
40 + }
41 + };
42 +
43 + function checkNumber() // 올바른 전화번호 형태인지 확인
44 + {
45 + var number = document.getElementById('number').value;
46 + var regex = /^\d{3}-\d{4}-\d{4}$/;
47 + if (!(regex.test(number)))
48 + {
49 + alert("010-XXXX-XXXX 형식에 맞게 입력해 주세요.");
50 + document.getElementById('number').value = "";
51 + }
52 +
53 + };
54 +
24 function getDayTime() // 날짜와 시간을 구해주는 함수 55 function getDayTime() // 날짜와 시간을 구해주는 함수
25 { 56 {
26 var today = new Date(); 57 var today = new Date();
...@@ -28,7 +59,13 @@ ...@@ -28,7 +59,13 @@
28 var time = today.toLocaleTimeString(); //시:분:초 59 var time = today.toLocaleTimeString(); //시:분:초
29 return (day + ' ' + time); 60 return (day + ' ' + time);
30 }; 61 };
31 - 62 +
63 + function clear() // 데이터 제출 시 input box를 초기화 시킨다.
64 + {
65 + document.getElementById('name').value = "";
66 + document.getElementById('number').value = "";
67 + };
68 +
32 function getInfo() // 입력받은 데이터를 배열에 저장한다. 69 function getInfo() // 입력받은 데이터를 배열에 저장한다.
33 { 70 {
34 var temp_name = document.getElementById('name').value; 71 var temp_name = document.getElementById('name').value;
...@@ -44,9 +81,10 @@ ...@@ -44,9 +81,10 @@
44 console.log(idArr); 81 console.log(idArr);
45 dayTimeArr.push(dateTime); 82 dayTimeArr.push(dateTime);
46 console.log(dayTimeArr); 83 console.log(dayTimeArr);
84 + clear();
47 85
48 }; 86 };
49 - 87 +
50 function save() // 배열에 저장한 데이터를 가공해 json파일의 형태로 만들고, 다운로드 링크를 생성한다. 88 function save() // 배열에 저장한 데이터를 가공해 json파일의 형태로 만들고, 다운로드 링크를 생성한다.
51 { 89 {
52 var obj = new Object(); 90 var obj = new Object();
...@@ -60,8 +98,8 @@ ...@@ -60,8 +98,8 @@
60 console.log('Save Complete'); 98 console.log('Save Complete');
61 document.getElementById('link').setAttribute('download', fileName); // 다운로드 전 파일 이름을 변경해준다. 99 document.getElementById('link').setAttribute('download', fileName); // 다운로드 전 파일 이름을 변경해준다.
62 }; 100 };
101 +
63 </script> 102 </script>
64 ->>>>>>> 915eacfc5f4f474bf100af252cf05cd2b665fe4f
65 </head> 103 </head>
66 <body> 104 <body>
67 <!-- header --> 105 <!-- header -->
...@@ -84,11 +122,11 @@ ...@@ -84,11 +122,11 @@
84 <div class="col-lg-6"> 122 <div class="col-lg-6">
85 <form> 123 <form>
86 <legend>방문자 인적 사항</legend> 124 <legend>방문자 인적 사항</legend>
87 - <p>이름: <input class="form-control" type='text' id='name' placeholder="고길동"> 125 + <p>이름: <input class="form-control" type='text' id='name' onblur="checkName();" placeholder="홍길동" required>
88 </p> 126 </p>
89 - <p>전화번호: <input class="form-control" type='text' id='number' placeholder="010-1234-1234" ></input></p> 127 + <p>전화번호: <input class="form-control" type='text' id='number' onblur="checkNumber();" placeholder="010-XXXX-XXXX" required></input></p>
90 <p>신분: 128 <p>신분:
91 - <select id = "identity" class="form-control"> 129 + <select id = "identity" class="form-control" required>
92 <option value = "재학생">재학생</option> 130 <option value = "재학생">재학생</option>
93 <option value = "휴학생">휴학생</option> 131 <option value = "휴학생">휴학생</option>
94 <option value = "직원">직원</option> 132 <option value = "직원">직원</option>
...@@ -97,7 +135,7 @@ ...@@ -97,7 +135,7 @@
97 </p> 135 </p>
98 <p> 136 <p>
99 <input type = "reset" style="float:right; margin-left:5px; background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%); border: 0;" class="btn btn-warning"value = "다시입력"/> 137 <input type = "reset" style="float:right; margin-left:5px; background-image: linear-gradient(to top, #fbc2eb 0%, #a6c1ee 100%); border: 0;" class="btn btn-warning"value = "다시입력"/>
100 - <button type = "button" onclick="getInfo();" style="float:right; background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%); border: 0; " class="btn btn-success">제출</button> 138 + <button type = "button" onclick="checkInput();" style="float:right; background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%); border: 0; " class="btn btn-success">제출</button>
101 </p> 139 </p>
102 <button type="button" onclick="save();">저장</button> 140 <button type="button" onclick="save();">저장</button>
103 <a href="#" id="link" download="name">다운로드</a> 141 <a href="#" id="link" download="name">다운로드</a>
...@@ -110,7 +148,6 @@ ...@@ -110,7 +148,6 @@
110 <!--초기값으로 '시작'이라는 음성을 사용 --> 148 <!--초기값으로 '시작'이라는 음성을 사용 -->
111 <!--auto play 기능을 위해 iframe 사용 --> 149 <!--auto play 기능을 위해 iframe 사용 -->
112 <iframe src="/audios/4.mp3" allow="autoplay" id="audio" style="display:none"></iframe> 150 <iframe src="/audios/4.mp3" allow="autoplay" id="audio" style="display:none"></iframe>
113 -<<<<<<< HEAD
114 </span> 151 </span>
115 <!-- footer --> 152 <!-- footer -->
116 <footer> 153 <footer>
...@@ -247,4 +284,4 @@ ...@@ -247,4 +284,4 @@
247 284
248 </script> 285 </script>
249 </body> 286 </body>
250 -</html> 287 +</html>
...\ No newline at end of file ...\ No newline at end of file
......