본문 바로가기
개발 수업/WEB

[JavaScript] JavaScript에서 HTML문서 사용, 폼 배열을 사용해 폼 요소에 접근하기

by 오늘 하루s 2023. 6. 23.
728x90
더보기

Day39. 230623

JavaScript에서 HTML문서 사용

1) Inline방식

- html문서 태그의  script코드 작성

<input type="button" value="Inline" name="btn1" id="btn1" class="btn1" onclick="alert('안녕!');" />

 

 

2) Internal방식

- html문서 내부의  script코드 작성

<input type="button" value="Internal" name="btn2" id="btn2" class="btn1" onclick="fun1();" />

<script type="text/javascript">
//funtion 함수명(매개변수리스트){구현코드}
function fun1(){ alert('Internal방식\nfun1()이다!!'); }

 

 

3) External방식

- 외부의 script파일과 연동

<input type="button" value="External" name="btn3" id="btn3" class="btn1" onclick="fun2();" />
<script src="../js/myFirstJS.js"> </script>

아래에 myFirstJS.js와 연동

 

myFirstJS.js>

function fun2(){
		alert('\t\'External방식\nfun1()이다!!');
	}

 

 


폼 배열을 사용해 폼 요소에 접근하기

document 속성 중 form 속성은 문서 안에 있는 <form>태그를 모두 가져와 배열 형태로 반환한다.

이 방법은 폼요소에 id나 class속성,name속성도 없을 때 사용한다.

 

<form> 태그 안에 포함된 요소에 접근하려면 elements 속성을 사용한다. 

 

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form</title>
  <!-- External방식- 외부의 script파일과 연동-->
  <script src="../js/myFirstJS.js"> </script>
	<style>
	 /*구글 웹 폰트사용하기(p217)*/	
   @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@500&display=swap');
   
   h2{font-family: 'Noto Sans KR', sans-serif;
    }
    
    /* 버튼 */
    .btn1{width:60px; height:25px;}

   </style>
</head>
<body>
	<h2>form(p133)</h2>
<pre>
*form요소의 속성
- action: 서버(server)측 페이지
- method: get(기본값) | post

*GET에 대한 참고 사항:
 -양식 데이터를 이름/값 쌍으로 URL에 추가합니다.
 -GET을 사용하여 민감한 데이터를 보내지 마십시오! (제출된 양식 데이터는 URL에서 볼 수 있습니다!)
 -URL의 길이는 제한되어 있습니다(2048자).
 -사용자가 결과를 북마크하려는 양식 제출에 유용합니다.
 -GET은 Google의 쿼리 문자열과 같은 비보안 데이터에 적합합니다.

*POST에 대한 참고 사항:
 -HTTP 요청 본문 내부에 양식 데이터를 추가합니다(제출된 양식 데이터는 URL에 표시되지 않음).
 -POST는 크기 제한이 없으며 많은 양의 데이터를 보내는 데 사용할 수 있습니다.
 -POST를 사용한 양식 제출은 북마크할 수 없습니다.
</pre>
	<form name="frm1" id="frmid1">
	<!-- <form action="ok.jsp" method="get"> -->
	<fieldset>
    <legend>Personalia:</legend>
	<%--input type="hidden"은 노출x, 예)글번호, 회원id 등 --%>
	  <input type="hidden" name="userNick" value="비밀"/>
	  
	 <ul>
		  <li>이름:<input type="text" name="userName" id="userName" size="10" maxlength="5"
		  						autofocus="autofocus" placeholder="이름입력하세요"/></li>
		  <li>id: <input type="text" name="id" id="id" required="required" /></li>
		  <li>비밀번호: <input type="password" name="pwd" id="pwd" size="10"/></li>
		  <li>email:<input type="email" name="email" id="email"/></li>
		  <li>tel:<input type="tel" name="tel" id="email"/></li>
          <li>url:<input type="url" name="mySite" id="mySite"></li>
		  <li>관심사(취미):
			 		<input type="checkbox" name="hobby" id="h0" value="coffee" checked="checked"/><label for="h0">커피내리기</label>
		            <input type="checkbox" name="hobby" id="h1" value="movie"/><label for="h1">영화감상</label>
		            <input type="checkbox" name="hobby" id="h2" value="drama"/><label for="h2">드라마보기</label>
		            <input type="checkbox" name="hobby" id="h3" value="toon"/><label for="h3">웹툰보기</label> 
		            <input type="checkbox" name="hobby" id="h4" value="music"/><label for="h4">음악감상</label>  
		            <input type="checkbox" name="hobby" id="h5" value="book"/><label for="h5">독서</label>
			 </li>
			<li><label for="language">과목선택</label>
		          <select name="language"  id="language" size="10" multiple="multiple">
			        <option value="java" selected="selected">자바</option>
		            <option value="oracle">오라클</option>
		            <option value="html">HTML</option>
		            <option value="css">CSS</option>
		            <option value="js">Javascript</option>
		            <option value="jquery">jQuery</option>
		          </select>
			 </li>
		   </fieldset>
		   
		   <fieldset>
 		   <legend>Personalia:</legend>
		   <li>date: <input type="date"  name="d1" id="d1" ></li>
           <li>datetime-local:<input type="datetime-local" name="d2" id="d2" /></li>
           <li>month:<input type="month" name="d3" id="d3" /></li>
           <li>week: <input type="week" name="d4" id="d4" /></li>
           <li>time: <input type="time" name="d5" id="d5" /></li>
		   <li>date before 1980-01-01:<input type="date" id="datemax" name="datemax" max="1979-12-31"></li>
           <li>date after  2000-01-01:<input type="date" id="datemin" name="datemin" min="2000-01-02"></li>
		   <li>약관동의여부:
		  		 <input type="radio" name="agree" id="agreeY" value="Y" checked="checked"/><label for="agreeY">동의</label>
		  		 <input type="radio" name="agree" id="agreeN" value="N" /><label for="agreeN">미동의</label>
		   </li>
           
		   <li>메모<textarea name="memo"  rows="5" cols="20">기본값</textarea></li>
	 </ul>
	 
	 <ul>
	   <li>색상:<input type="color" name="myColor"/></li>
	   <li>수량(number):<input type="NUMBER" name="quantity1" value="1" min="0" max="10" step="1"/></li>
	   <li>수량(range):<input type="range" name="quantity2" value="1" min="0" max="10" step="1"/></li>
	   <li>파일찾기(file):<input type="file" name="file" id="file" multiple="multiple"/></li>
	 </ul>
	 </fieldset>
	 
	  <input type="submit" value="확인" class="btn1 "/>
	  <input type="image" src="../imges/submit4.png"  name="submitING" id="submitING" class="btn1" />
	  <input type="reset" value="취소" class="btn1" />
	  <br/><br/>
	  
	  <!-- Inline방식- html문서 태그의  script코드 작성 -->
	  <input type="button" value="Inline" name="btn1" id="btn1" class="btn1" onclick="alert('안녕!');" />
	  <input type="button" value="Internal" name="btn2" id="btn2" class="btn1" onclick="fun1();" />
	  <input type="button" value="External" name="btn3" id="btn3" class="btn1" onclick="fun2();" />
	  <input type="button" value="js전송" name="btnSubmit" id="btnSubmit" class="btn1" onclick="frmSubmit();" />
	  <br/><br/>
	</form>
	<script type="text/javascript">
	
	<!-- Internal방식- html문서 내부의  script코드 작성 -->
	//funtion 함수명(매개변수리스트){구현코드}
	function fun1(){
		alert('Internal방식\nfun1()이다!!');
	}
	
	/*<form name="frm1" id="frm1">
	form요소에  action="ok.jsp" method="get"설정 */
	   function frmSubmit(){
	      alert('frmSubmit()호출성공');
	      //1)form요소에 접근 
	      // let formElement = window.document.forms[0]; //폼컬렉션의 첫번째 요소로 접근
	      //let formElement = window.document.frm1; //폼컬렉션의 이름으로 접근
	      //상위객체.하위객체
	      //window.document.폼객체.폼하위객체
	      let formElement = document.getElementById("frmid1"); //document객체의 getElementById()메서드를 이용해 접근
	      
	      //유효성 검사-필수입력,글자수체크,비번일치여부 등
	      //id필수입력
	      //id요소에 접근 값이 없으면 경고창에 "ID는 필수입력입니다." 출력
	      
	      if(formElement.id.value==""){ //입력값이 없으면
	    	  window.alert('ID는 필수입력입니다.');
	      	  return;
	      }
	      
	      //2)폼요소의 action속성의 값을 "ok.jsp"설정
	      formElement.action="ok.jsp";
	      //2)폼요소의 method속성의 값을 "get"설정
	      formElement.method="get";
	      
	      //3)method의 방식으로 action에서 지정한 페이지로 폼의 내용을 전송
	      formElement.submit();
	   }   
	
	</script>
	
		클래스 변수명= new 클래스명();
		변수명.필드명     -> 필드의 값을 가져오기=>GET
		변수명.필드명=값; -> 필드의 값을 설정	 =>SET
		변수명.메서드명();
</body>
</html>

 

 

 

728x90

'개발 수업 > WEB' 카테고리의 다른 글

[JavaScript] 자바스크립트 변수  (0) 2023.06.26
[JSP] 스크립트릿(scriptlet) 태그  (0) 2023.06.23
Visual Studio 설치  (0) 2023.06.22
[HTML] Get방식, Post방식  (0) 2023.06.22
[CSS] 폼(form)  (0) 2023.06.22