• 회원가입
  • 로그인
  • 구글아이디로 로그인

[attribute] HTML - onchange 속성 ★ - 요소값 변경 이벤트 시 실행 (= onchange속성 = 온체인지속성) ※ onchange이벤트 = 온체인지이벤트 ※ AJAX (아작스/에이잭스) GET/POST 방식

목차
  1. onchange 예제 - <select> 경우
  2. onchange 정의
  3. onchange 구문
  4. onchange 예제 - <input> 경우
  5. onchange 예제 - <textarea> 경우
  6. onchange 예제 - <select> AJAX GET 방식
  7. onchange 예제 - <select> AJAX POST 방식

 

onchange 예제 - <select> 경우

 

<select id="hz" onchange="homzzang()">

  <option value="html">html</option>

  <option value="css">css</option>

  <option value="js">js</option>

  <option value="php">php</option>

</select>


<p id="demo"></p>


<script>

function homzzang() {

  var x = document.getElementById("hz").value;

  document.getElementById("demo").innerHTML = "선택값: " + x;

}

</script>


결과보기

 

onchange 정의

 

요소값 변경 시 실행할 스크립트 내용 지정.

 


 

1. onchange 속성 사용 가능 태그 종류

<input>, <select>, <textarea>

  • <input> 태그 중 사용 가능 type 종류: checkbox, file, password, radio, range, search, text


2. cf.

  • oninput 속성 - 요소값이 바뀌는 순간 실행됨.
  • onchange 속성 - 요소값이 바뀌고 포커스 읽는 순간 실행됨.

 

3.

모든 브라우저 지원.

 

 

onchange 구문

 

HTML 방식

  • <element onchange="myScript">

 

JS 방식 (3가지)

  • object.onchange = ()=>{myScript};
  • object.onchange = function(){myScript};
  • object.addEventListener("change", myScript);



[속성값]

 

myScript

요소값 변경 시, 실행할 JS 코드

  • 주의: 함수명 사용 시, 다른 곳은 전부 소괄호까지 사용해 함수 호출하나 핑크색 myScript 자리는 "함수명만" 사용해 함수 호출.
  • 사용 방식 통일 권장.

 


onchange 예제 - <input> 경우

 

텍스트 입력: <input type="text" name="hz" value="홈짱닷컴 Homzzang.com" onchange="homzzang(this.value)">


<script>

function homzzang(val) {

  alert("새 입력값: " + val);

}

</script>

 

결과보기

 

onchange 예제 - <textarea> 경우

 

자기소개 입력:<textarea name="self" onchange="homzzang(this.value)"></textarea>


<script>

function homzzang(val) {

  alert("변경된 값: " + val);

}

</script>


결과보기

 

onchange 예제 - <select> AJAX GET 방식

/select.php

 

<select id="hz">

  <option>언어선택</option>

  <option value="html">html</option>

  <option value="css">css</option>

  <option value="js">js</option>

  <option value="php">php</option>

</select>


<p id="demo">선택값 표시</p>


<script>

var hz = document.getElementById("hz");

var demo = document.getElementById("demo");


hz.onchange = function() {

    // 선택된 값 가져오기

    var hzvalue = hz.value;


    // AJAX 요청 보내기

    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function() {

      if (this.readyState === 4 && this.status === 200) { // 요청 성공 시, 결과 표시

        demo.innerHTML = this.responseText;

      }

    };

    xhr.open("GET", "process.php?selected=" + hzvalue, true);

    xhr.send();

};

</script>

 


/process.php

 

<?php

// 선택값 받기

$selected = $_GET["selected"];


  // 선택값별 처리

  switch ($selected) {

    case "html":

      $result = "HTML: 구조";

      break;

    case "css":

      $result = "CSS: 디자인";

      break;

    case "js":

      $result = "JavaScript: 동작";

      break;

    case "php":

      $result = "PHP: 서버처리";

      break;

    default:

      $result = "선택값 없음";

  }


// 결과 반환

echo $result;

?>


 

onchange 예제 - <select> AJAX POST 방식

/select.php 

 

<select id="hz">

  <option>언어선택</option>

  <option value="html">html</option>

  <option value="css">css</option>

  <option value="js">js</option>

  <option value="php">php</option>

</select>


<p id="demo">선택값 표시</p>


<script>

var hz = document.getElementById("hz");

var demo = document.getElementById("demo");


hz.onchange = function() {

    // 선택된 값 가져오기

    var hzvalue = hz.value;


    // AJAX 요청 보내기

    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function() {

      if (this.readyState === 4 && this.status === 200) { // 요청 성공 시 결과 표시

        demo.innerHTML = this.responseText;

      }

    };

    xhr.open("POST", "process.php", true);

    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    xhr.send("selected=" + hzvalue);

};

</script>

 


/process.php

 

<?php

// 선택값 받기

$selected = $_POST["selected"];


  // 선택값별 처리

  switch ($selected) {

    case "html":

      $result = "HTML: 구조";

      break;

    case "css":

      $result = "CSS: 디자인";

      break;

    case "js":

      $result = "JavaScript: 동작";

      break;

    case "php":

      $result = "PHP: 서버처리";

      break;

    default:

      $result = "선택값 없음";

  }


// 결과 반환

echo $result;

?>


PS. GET/POST 방식의 process.php 파일 경우, 보안 처리 코드 추가 필요.

방문 감사합니다. (즐겨찾기 등록: Ctrl + D)

분류 제목
attribute HTML - oncuechange 속성 - 트랙의 큐(캡션/자막) 변경 시 실행 (= oncuechange속…
attribute HTML - oncut 속성 - 요소 내용 잘라내기 시 실행 (= oncut속성 = 온컷속성) ※ oncut…
attribute HTML - ondblclick 속성 ★ - 요소 더블클릭 이벤트 시 실행 (= ondblclick속성 = …
attribute HTML - ondrag 속성 - 드래그 이벤트 시 실행할 코드 지정 (= ondrag속성 = 온드래그속성)…
attribute HTML - ondragend 속성 - 드래그 종료 시 실행 (= ondragend속성 = 온드래그엔드속성)…
attribute HTML - ondragenter 속성 - 드래그 한 요소가 드롭박스에 들어갈 때 실행 (= ondragen…
attribute HTML - ondragleave 속성 - 드래그 한 요소가 드롭박스 이탈 시 실행 (= ondragleav…
attribute HTML - ondragover 속성 - 드래그 한 요소가 드롭박스 위에 위치 시 실행 (= ondragov…
attribute HTML - ondragstart 속성 - 드래그 시작 시 실행 (= ondragstart속성 = 온드래그스…
attribute HTML - ondrop 속성 - 드래그 한 요소를 드롭 할 때 실행 (= ondrag속성 = 온드래그속성)…
attribute HTML - ondurationchange 속성 - 재생시간 데이터가 변경될 때 실행 (= onduratio…
attribute HTML - onemptied 속성 - 미디어 소스가 비어있거나 삭제된 경우에 실행 (= onemptied속…
attribute HTML - onended 속성 - 미디어 재생 끝날 때 실행 (= onended속성 = 온엔디드속성) ※ …
attribute HTML - onerror 속성 - 미디어파일 로딩 에러 시 실행 (= onerror속성 = 온에러속성) ※…
attribute HTML - onfocus 속성 ★ - 포커스 설정 시 실행 (= onfocus속성 = 온포커스속성) ※ o…
attribute HTML - onhashchange 속성 - 링크 해시값 변경 시 실행 (= onhashchange속성 = …
attribute HTML - oninput 속성 ★ - 사용자 입력값 변경 시 바로 실행 (= oninput속성 = 온인풋속…
attribute HTML - oninvalid 속성 - 유효하지 않은 입력값 제출 시 실행 (= oninvalid속성 = 온…
attribute HTML - onkeydown 속성 - 키보드키 내려갈 때 실행 (= onkeydown속성 = 온키다운속성)…
attribute HTML - onkeypress 속성 - [페기예고] 키보드키 눌렀을 때 실행 (= onkeypress속성 …
12/18
목록
찾아주셔서 감사합니다. Since 2012