본문 바로가기

카테고리 없음

JS 객체 (Form), document.test. 사용법

form구조는 front단 js에서 서버단으로 데이터를 보낼때 많이 사용함

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body>
    <form action="" name="test">
        <input type="button" name="btn1" id="" value="첫번째 버튼">
        <input type="button" name="btn2" id="" value="두번째 버튼">
    </form>
    <script>
        //폼에 대한 정보
        document.write("name:" + document.test.name + "<p>");
        document.write("method:" + document.test.method + "<p>");
        document.write("length:" + document.test.length + "<p>");

        //element 정보
        document.write("element[0].name " + document.test.elements[0].name + "<p>");
        document.write("element[0].name " + document.test.elements[1].name + "<p>");

        
        document.write("element[0].name " + document.test.elements[0].value + "<p>");
        document.write("element[0].name " + document.test.elements[1].value + "<p>");


    </script>
</body>
</html>

length: form에 있는 element 갯수

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body>
    <form action="" name="test" method="post">
        아이디: <input type="text" name="id" size = "20" value="아이디 입력"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" value="비밀번호 입력"> </input>
        <p></p>
        <input type="button" name="btn1" id="" value="첫번째 버튼">
        <input type="button" name="btn2" id="" value="두번째 버튼">
    </form>
    <script>
        //폼에 대한 정보
        document.write("name:" + document.test.name + "<p>");
        document.write("method:" + document.test.method + "<p>");
        document.write("length:" + document.test.length + "<p>");


        for(var i =0; i < document.test.length; i++)
        {
            document.write("element["+ i +"].name " + document.test.elements[i].name + "<p>");
            document.write("element["+ i +"].name " + document.test.elements[i].name + "<p>");
        }


    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body>
    <form action="" name="test" method="post">
        아이디: <input type="text" name="id" size = "20" value="아이디 입력" onclick="콜백함수"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" value="비밀번호 입력" onclick="콜백함수"> </input>
        <p></p>
        <input type="submit" name="btn1" id="" value="등록하기" onclick="register()">
        <input type="reset" name="btn2" id="" value="다시작성" onclick="rewrite()">
    </form>
    <script>

        function register() {
            
            document.test.submit();
            alert("회원가입을 축하합니다.");
        }
        function rewrite() {
             
            document.test.reset();
            alert("다시 입력하세요")
        }



    </script>
</body>
</html>

등록하기 클릭할 경우

다시작성 클릭랑 경우 

input에 있는 register()  rewrite() 함수를 form으로 옮김

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body>
    <form action="" name="test" method="post" onsubmit="register()" onreset="rewrite()">
        아이디: <input type="text" name="id" size = "20" value="아이디 입력" onclick="콜백함수"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" value="비밀번호 입력" onclick="콜백함수"> </input>
        <p></p>
        <input type="submit" name="btn1" id="" value="등록하기">
        <input type="reset" name="btn2" id="" value="다시작성">
    </form>
    <script>

        function register() {
            
            document.test.submit();
            alert("회원가입을 축하합니다.");
        }
        function rewrite() {
             
            document.test.reset();
            alert("다시 입력하세요")
        }



    </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body>
    <form action="" name="test" method="post" onsubmit="register()" onreset="rewrite()">
        아이디: <input type="text" name="id" size = "20" placeholder="아이디 입력" onclick="콜백함수"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" placeholder="비밀번호 입력" onclick="콜백함수"> </input>
        <p></p>
        <input type="submit" name="btn1" id="" value="등록하기" >
        <input type="reset" name="btn2" id="" value="다시작성">
    </form>
    <script>

        function register() {
            
            if (document.test.id.value == "") 
            {
                
                alert ("아이디를 입력하세요");
            }
            else if(document.test.pw.value == "")
            {
                alert("비밀번호를 입력하세요");
            }
            else
            {
                document.test.submit();
                alert("회원가입을 축하합니다.");    
            }

        }
        function rewrite() {
   
        }



    </script>
</body>
</html>

body에  onload = "init()" 를 추가하고  init()이라는 함수를 만들어서 document.test.id.focus를 사용해  이름이 test인 form에있는 id라는 input에 페이지가 로딩 된후 커서가 깜빡이게 적용

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body onload="init()">
    <form action="" name="test" method="post" onsubmit="register()" onreset="rewrite()">
        아이디: <input type="text" name="id" size = "20" placeholder="아이디 입력" onclick="콜백함수"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" placeholder="비밀번호 입력" onclick="콜백함수"> </input>
        <p></p>
        <input type="submit" name="btn1" id="" value="등록하기" >
        <input type="reset" name="btn2" id="" value="다시작성">
    </form>
    <script>


        function init() {
            alert("페이지 로드중입니다.");
            document.test.id.focus();
        }

        function register() {
            
            if (document.test.id.value == "") 
            {
                
                alert ("아이디를 입력하세요");
            }
            else if(document.test.pw.value == "")
            {
                alert("비밀번호를 입력하세요");
            }
            else
            {
                document.test.submit();
                alert("회원가입을 축하합니다.");    
            }

        }
        function rewrite() {
   
        }



    </script>
</body>
</html>

페이지 로디중입니다. 확인 클릭후 아이디 input에 커서 깜빡

id input에 onchange="change()" 라는 함수를 호출해서 id input을 수정하고 텍스트박스를 벗어날 경우 alert 호출 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body onload="init()">
    <form action="" name="test" method="post" onsubmit="register()" onreset="rewrite()">
        아이디: <input type="text" name="id" size = "20" placeholder="아이디 입력" onclick="콜백함수" onchange="change()"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" placeholder="비밀번호 입력" onclick="콜백함수"> </input>
        <p></p>
        <input type="submit" name="btn1" id="" value="등록하기" >
        <input type="reset" name="btn2" id="" value="다시작성">
    </form>
    <script>

        function change() {
            
            alert("아이디가 변경되었습니다.");
        }

        function init() {
            alert("페이지 로드중입니다.");
            document.test.id.focus();
        }

        function register() {
            
            if (document.test.id.value == "") 
            {
                
                alert ("아이디를 입력하세요");
            }
            else if(document.test.pw.value == "")
            {
                alert("비밀번호를 입력하세요");
            }
            else
            {
                document.test.submit();
                alert("회원가입을 축하합니다.");    
            }

        }
        function rewrite() {
   
        }



    </script>
</body>
</html>

비번 input text 길이 유효성검사 (8보다 작거나 12보다 클 경우)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body onload="init()">
    <form action="" name="test" method="post" onsubmit="register()" onreset="rewrite()">
        아이디: <input type="text" name="id" size = "20" placeholder="아이디 입력" onclick="콜백함수" onchange="change()"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" placeholder="비밀번호 입력" onclick="콜백함수"> </input>
        <p></p>
        <input type="submit" name="btn1" id="" value="등록하기" >
        <input type="reset" name="btn2" id="" value="다시작성">
    </form>
    <script>

        function change() {
            
            alert("아이디가 변경되었습니다.");
        }

        function init() {
            alert("페이지 로드중입니다.");
            document.test.id.focus();
        }

        function register() {
            
            if (document.test.id.value == "") 
            {
                
                alert ("아이디를 입력하세요");
            }
            else if(document.test.pw.value == "")
            {
                alert("비밀번호를 입력하세요");
            }
            else
            {
                var pwlen =  document.test.pw.value.length;
                if (pwlen < 8 || pwlen > 12 ) {
                    alert("8자 이상 12자 이하로 입력해주세요");
                }
                else
                {
                    document.test.submit();
                    alert("회원가입을 축하합니다.");  
                }
  
            }

        }
        function rewrite() {
   
        }



    </script>
</body>
</html>

 

textarea에 있는 text 전체 선택
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body onload="init()">
    <form action="" name="test" method="post" onsubmit="register()" onreset="rewrite()">
        아이디: <input type="text" name="id" size = "20" placeholder="아이디 입력" onclick="콜백함수" onchange="change()"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" placeholder="비밀번호 입력" onclick="콜백함수"> 
        (8자 이상 12자 이하)</input>
        하고 싶은 말: <br> <textarea name="diary" id="" cols="50" rows="10"></textarea> 
        <p></p>
        <input type="submit" name="btn1" id="" value="등록하기" >
        <input type="reset" name="btn2" id="" value="다시작성">
        <input type="button" name="btn3" id="" value="전체선택" onclick="selectAll()">
    </form>
    <script>

        function selectAll() {
            document.test.diary.select();
        }

        function change() {
            
            alert("아이디가 변경되었습니다.");
        }

        function init() {
            alert("페이지 로드중입니다.");
            document.test.id.focus();
        }

        function register() {
            
            if (document.test.id.value == "") 
            {
                
                alert ("아이디를 입력하세요");
            }
            else if(document.test.pw.value == "")
            {
                alert("비밀번호를 입력하세요");
            }
            else
            {
                var pwlen =  document.test.pw.value.length;
                if (pwlen < 8 || pwlen > 12 ) {
                    alert("8자 이상 12자 이하로 입력해주세요");
                }
                else
                {
                    document.test.submit();
                    alert("회원가입을 축하합니다.");  
                }
  
            }

        }
        function rewrite() {
   
        }



    </script>
</body>
</html>

textArea에서 text값을 입력하고 전체선택을 클릭할 경

toogle 버튼 작

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body onload="init()">
    <form action="" name="test" method="post" onsubmit="register()" onreset="rewrite()">
        아이디: <input type="text" name="id" size = "20" placeholder="아이디 입력"  onchange="change()"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" placeholder="비밀번호 입력" >
        (8자 이상 12자 이하)</input>
        하고 싶은 말: <br> <textarea name="diary" id="" cols="50" rows="10"></textarea> 
        <hr>
        
        
        <input type="submit" name="btn1" id="" value="등록하기" >
        <input type="reset" name="btn2" id="" value="다시작성">
        <input type="button" name="btn3" id="" value="전체선택" onclick="selectAll()">
        <input type="button" name="btn4" id="" value="버튼이름 변경" onclick="changeName()">
    </form>
    <script>

        function checkAll() {
            for(var i = 4; i< 7; i++)
            {
                document.test.elements[i].click();
            }
        }

        var btoggle = true;
        function changeName() {
            
            if (btoggle) {
                document.test.btn1.value = "제거하기";
                btoggle = false;
            }
            else
            {
                document.test.btn1.value = "등록하기";
                btoggle = true;
            }
        }
        
        function selectAll() {
            document.test.diary.select();
        }

        function change() {
            
            alert("아이디가 변경되었습니다.");
        }

        function init() {
            alert("페이지 로드중입니다.");
            document.test.id.focus();
        }

        function register() {
            
            if (document.test.id.value == "") 
            {
                
                alert ("아이디를 입력하세요");
            }
            else if(document.test.pw.value == "")
            {
                alert("비밀번호를 입력하세요");
            }
            else
            {

                var pwlen =  document.test.pw.value.length;
                if (pwlen < 8 || pwlen > 12 ) {
                    alert("8자 이상 12자 이하로 입력해주세요");
                }
                else
                {
                    document.test.submit();
                    alert("회원가입을 축하합니다.");  
                } 
            }

        }
        function rewrite() {
   
        }



    </script>
</body>
</html>

버튼이름 변경 클릭할 경우

체크박스 여러개 체크 및 전부 체크한 다음 등록 허용

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>폼객체</title>
</head>
<body onload="init()">
    <form action="" name="test" method="post" onsubmit="register()" onreset="rewrite()">
        아이디: <input type="text" name="id" size = "20" placeholder="아이디 입력"  onchange="change()"> </input><br>
        비밀번호: <input type="text" name="pw" size = "20" placeholder="비밀번호 입력" >
        (8자 이상 12자 이하)</input>
        하고 싶은 말: <br> <textarea name="diary" id="" cols="50" rows="10"></textarea> 
        <hr>
        연령대<p>
        <input type="radio" name="age" value="10대">10대
        <input type="radio" name="age" value="20대">20대
        <input type="radio" name="age" value="30대">30대
        <input type="radio" name="age" value="40대">40대 <p><hr>
        
        개인정보동의<p>
        <input type="checkbox" name="chkAll" onclick="checkAll()">개인정보 전체체크<p></p>
        <input type="checkbox" name="chk1" value="1">개인정보 수집<p>
        <input type="checkbox" name="chk2" value="2">개인정보 조회<p>
        <input type="checkbox" name="chk3" value="3">개인정보 제공<p>
        
        
        <input type="submit" name="btn1" id="" value="등록하기" >
        <input type="reset" name="btn2" id="" value="다시작성">
        <input type="button" name="btn3" id="" value="전체선택" onclick="selectAll()">
        <input type="button" name="btn4" id="" value="버튼이름 변경" onclick="changeName()">
    </form>
    <script>


        function checkAll() {
            for(var i = 8; i< 11; i++)
            {
                document.test.elements[i].click();
            }
        }

        var btoggle = true;
        function changeName() {
            
            if (btoggle) {
                document.test.btn1.value = "제거하기";
                btoggle = false;
            }
            else
            {
                document.test.btn1.value = "등록하기";
                btoggle = true;
            }
        }
        
        function selectAll() {
            document.test.diary.select();
        }

        function change() {
            
            alert("아이디가 변경되었습니다.");
        }

        function init() {
            alert("페이지 로드중입니다.");
            document.test.id.focus();
        }

        function register() {
            
            if (document.test.id.value == "") 
            {
                
                alert ("아이디를 입력하세요");
            }
            else if(document.test.pw.value == "")
            {
                alert("비밀번호를 입력하세요");
            }
            else
            {


                var pwlen =  document.test.pw.value.length;
                if (pwlen < 8 || pwlen > 12 ) {
                    alert("8자 이상 12자 이하로 입력해주세요");
                }
                else
                {
                    var check1 = document.test.chk1.checked;
                    var check2 = document.test.chk2.checked;
                    var check3 = document.test.chk3.checked;

                    if (check1 && check2 && check3) {
                        for(var i = 0; i < document.test.length; i++)
                        {
                            if (document.test.age[i].checked == true) {
                                alert (document.test.age[i].value + '이군요!');
                            }
                        }
                        document.test.submit();
                        alert("회원가입을 축하합니다.");
                    }
                    else
                    {
                        alert("모든 항목을 체크해주세요.");
                    }

                    } 
            }

        }
        function rewrite() {
   
        }



    </script>
</body>
</html>