14. 자바스크립트 (JavaScript) - IE 의 keypress 와 Chrome, Edge 의 keypress 차이점
OS | Windows 10 PRO 64bit 버전 20H2 (OS 빌드 19042.867) |
JavaScript | ES5 (2009年) |
동작방식 보기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function key1() {
var card1 = document.getElementById('card1').value
if (card1.length === 4) {
document.getElementById('card2').focus()
console.log('증가')
}
}
function key2() {
var card3 = document.getElementById('card3').value
if (card3.length === 4) {
document.getElementById('card4').focus()
console.log('증가')
}
}
</script>
</head>
<body>
<input type="text" id="card1" name="card1" onkeypress="key1()">
<input type="text" id="card2" name="card2">
<input type="text" id="card3" name="card3" onkeyup="key2()">
<input type="text" id="card4" name="card4">
</body>
</html>
Chrome | IE |
같은 코드로 실행하였는 데 다른 결과가 나온다
keypress 이벤트에 동작방식이 다르기 때문이다
크롬은 event 를 완료 한 뒤 keypress 입력이 되어 2번째 input 갔다가 1번째로 input 으로 돌아오는 반면
IE 는 keypress 가 입력 된 후 이벤트가 작동 되어 input2 가는 것이다
크롬이 input2 를 갔다가 input1 로 돌아오는 것을 보기위한 방법
1번째 확인 방법
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function key1() {
var card1 = document.getElementById('card1').value
console.log(card1.length)
if (card1.length === 4) {
document.getElementById('card2').focus()
alert('card2 input focus 되었음')
console.log('증가')
}
}
function key2() {
var card3 = document.getElementById('card3').value
console.log(card3.length)
if (card3.length === 4) {
document.getElementById('card4').focus()
console.log('증가')
}
}
</script>
</head>
<body>
<input type="text" id="card1" name="card1" onkeypress="key1()">
<input type="text" id="card2" name="card2">
<input type="text" id="card3" name="card3" onkeyup="key2()">
<input type="text" id="card4" name="card4">
</body>
</html>
2번째 확인 방법
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function key1() {
var card1 = document.getElementById('card1').value
console.log(card1.length)
if (card1.length === 4) {
document.getElementById('card2').focus()
console.log('증가')
}
}
function key2() {
var card3 = document.getElementById('card3').value
console.log(card3.length)
if (card3.length === 4) {
document.getElementById('card4').focus()
console.log('증가')
}
}
window.onload = function() {
var card2 = document.getElementById('card2')
card2.addEventListener('focus', function() {
alert('card2에 focus 이벤트가 감지 되었음')
})
}
</script>
</head>
<body>
<input type="text" id="card1" name="card1" onkeypress="key1()">
<input type="text" id="card2" name="card2">
<input type="text" id="card3" name="card3" onkeyup="key2()">
<input type="text" id="card4" name="card4">
</body>
</html>
'06. Javascript > 기초' 카테고리의 다른 글
16. 자바스크립트 (JavaScript) - Object.keys, Object.values, Object.entries (0) | 2021.09.02 |
---|---|
??. 자바스크립트 클로즈의 개념 (0) | 2021.07.07 |
13. 자바스크립트 (JavaScript) - blob 이미지 처리 (0) | 2021.06.15 |
12. 자바스크립트 (JavaScript) - 축약 (0) | 2021.06.10 |
11. 자바스크립트 (JavaScript) - 2개이상의 obj 합치기 ( Object.assign ) (0) | 2021.06.09 |
댓글
이 글 공유하기
다른 글
-
16. 자바스크립트 (JavaScript) - Object.keys, Object.values, Object.entries
16. 자바스크립트 (JavaScript) - Object.keys, Object.values, Object.entries
2021.09.02 -
??. 자바스크립트 클로즈의 개념
??. 자바스크립트 클로즈의 개념
2021.07.07 -
13. 자바스크립트 (JavaScript) - blob 이미지 처리
13. 자바스크립트 (JavaScript) - blob 이미지 처리
2021.06.15 -
12. 자바스크립트 (JavaScript) - 축약
12. 자바스크립트 (JavaScript) - 축약
2021.06.10