파일 전송
<form name = "이름" enctype="multipart/form-data">
...
</form>
- button 의 기본타입은 button 이 아니라 submit 이다.
<button type="button" id="이름">type="button"</button>
<button type="submit" id="이름">type="submit"</button>
<button type="reset" id="이름">type="reset"</button>
<button type="" id="이름">type="submit"</button>
<button id="이름">type="submit"</button>
.action
- 담겨진 데이터를 전송할 위치 잡기
- 보낼객체.action = "백엔드 주소"
frm.action = "register.do";
frm.submit();
document.querySelector("input[type='button']")
.addEventListener('click, () =>{
const frm = document.form의name;
const regExp_userid = /^[A-Za-z][A-Za-z0-9]{4,19}$/;
const bool_userid = regExp_userid.test(frm.userid.value);
if(!bool_userid){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
frm.userid.value = "";
frm.userid.focus();
return;
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
}
const regExp_passwd
= /^.*(?=^.{8,15}$)(?=.*\d)(?=.*[a-zA-Z])
(?=.*[^a-zA-Z0-9]).*$/g;
const bool_passwd = regExp_passwd.test(frm.passwd.value);
if(!bool_passwd){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
frm.passwd.value = "";
frm.passwd.focus();
return;
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
}
const passwd_val
= document.querySelector("암호확인위치").value;
if(frm.passwd.value != passwd_val){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
frm.passwd.value = "";
document.querySelector("암호확인위치").value = "";
frm.passwd.focus();
return;
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
}
const regExp_name = /^[가-힣]{2,6}$/;
const bool_name = regExp_name.test(frm.name.value);
if(!bool_name){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
frm.name.value = "";
frm.name.focus();
return;
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
}
const regExp_email
= /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]
([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
const bool_email = regExp_email.test(frm.email.value);
if(!bool_email){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
frm.email.value = "";
frm.email.focus();
return;
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
}
const gender_radio_list = frm.gender;
let gender_bool = false;
for(let gender_radio of gender_radio_list){
if(gender_radio.checked){
gender_bool = true;
break;
}
}
if(!gender_bool){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
}
const hobby_checkbox_list = frm.hobby;
let checked_cnt = 0;
for(let hobby_checkbox of hobby_checkbox_list){
if(hobby_checkbox.checked){
checked cnt++;
}
}
if(checked_cnt < 2){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
if(isNaN(frm.birthYear.value) || isNaN(frm.birthMonth.
value) || isNaN(frm.birthDate.value) || !checkValidDate
(frm.birthYear.value + " - " + frm.birthMonth.value
+ " - " frm.birthDate.value)){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
return;
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
}
if(frm.school.value == "선택하세요"){
document.querySelector("에러메시지위치").innerHTML
= "에러메시지";
}
else{
document.querySelector("에러메시지위치").innerHTML
= "";
}
if(frm.registerComment.value.trim() == ""){
document.querySelector("에러메시지").innerHTML = "에러메시지";
frm.registerComment.value = "";
frm.registerComment.focus();
return;
}
else{
document.querySelector("에러메시지").innerHTML = "";
}
frm.action = "백엔드 주소";
frm.submit();
})
Submit 전송
const frm = document.form의 name;
frm.onsubmit = functiion(){
}
정리
- 15_form_regular_expression
-> form_regular_expression.html, form_regular_expression.css, form_regular_expression.js