ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바스크립트 - form에 접근하기
    프로그래밍/JavaScript 자바스크립트 2021. 10. 1.
    반응형
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link rel="icon" href="data:;base64,iVBORw0KGgo=">
    <script type="text/javascript">
    function send() {
    	// 폼 접근 방법
    	// var f = document.myForm; // 폼이름으로 접근
    	var f = document.forms[0]; // 첫번째 폼
    	// console.log(f);
    	
    	// form을 이용해서 form 아래의 입력 객체를 이름으로 접근
    	// 폼.입력객체이름
    	var name = f.name.value;
    	
    	// 객체의 이름(name) 속성을 이용하여 접근
    	var birth = document.getElementsByName("birth")[0].value;
    	
    	// id 속성 접근
    	var age = document.getElementById("age").value;
    	
    	var s = name+","+birth+","+age;
    	var obj;
    	
    	// 태그로 접근
    	// obj = document.getElementsByTagName("div")[0];
    	
    	// class 속성의 속성값으로 접근
    	// obj = document.getElementsByClassName("layout")[0];
    	
    	// 선택자로 접근(해당 선택자의 첫번째 요소)
    	obj = document.querySelector(".layout");
    	
    	obj.innerHTML = s;
    }
    </script>
    
    </head>
    <body>
    
    <h3>document 객체</h3>
    
    <form name="myForm">
     <p> 이름 : <input type="text" name="name"> </p>
     <p> 생일 : <input type="text" name="birth"> </p>
     <p> 나이 : <input type="text" name="age" id="age"> </p>
     <p>
         <button type="button" onclick="send();">확인</button>
     </p> 
    </form>
    <hr>
    
    <div class="layout"></div>
    
    </body>
    </html>

    자바스크립트에서 document 즉 HTML 쪽에서 작성한 form에 접근하는 여러 방법들이 있다.

     

    1. form에 이름을 주고 자바스크립트에서 이름으로 접근

    = HTML form name = "myForm"

    = 자바스크립트에서 var f = document.myForm;

     

    2. form의 인덱스 번호로 접근

    = HTML 문서에서 첫번째 form에 접근

    = var f = document.forms[0]; 

     

    3. form의 값에 접근하는 법

    = var name = document.myForm.name.value;

    = 폼 태그 안에 있는 name 값을 가져옴

     

    4. 객체의 이름 속성을 이용해서 접근

    = var birth = document.getElementsByName("birth")[0].value;

    = 엘리먼트중에서 이름이 birth인 놈의 0번째 인덱스 값을 가져옴

    (주의할 점 엘리먼트뒤에 s 붙여야함 값이 여러개 일 수 있으니까)

     

    5. id 속성을 통해서 접근

    = var age = document.getElementById("age").value;

    name과 비슷함 

     

    6. 선택자로 접근하기, 해당 선택자의 첫번째 요소

    = obj = document.querySelector(".layout");

     

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link rel="icon" href="data:;base64,iVBORw0KGgo=">
    <script type="text/javascript">
    function send(f) {
    	var name = f.name.value;
    	var kor = f.kor.value;
    	var eng = f.eng.value;
    	var mat = f.mat.value;
    	
    	alert(name + ":" + kor +":" + eng + ":" + mat);
    }
    
    </script>
    </head>
    <body>
    
    <h3>form 요소 안에서의 this.form : 현재 객체의 부모 form을 나타냄</h3>
    <form name="myForm">
    	<p> 이름 : <input type="text" name="name"> </p>
    	<p> 국어 : <input type="text" name="kor"> </p>
    	<p> 영어 : <input type="text" name="eng"> </p>
    	<p> 수학 : <input type="text" name="mat"> </p>
    	<p>
    		<button type="button" onclick="send(this.form)">확인</button>
    	</p>
    </form>
    
    </body>
    </html>

    form 태그 안에서 this.form의 의미는 this.form을 쓴 객체의 부모 form을 나타낸다.

    myForm이라는 폼 안에 있는 버튼에서 위에 만들어논 send(f) 함수를 호출하면서

    send 인자에 this.form을 했으니까 결국에는 send(myForm)이 되는것.

     

     

    반응형

    댓글 0

Designed by Hyeok