๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Basics/Develop

[JS]ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ, Enter ์ด๋ฒคํŠธ, key ์ด๋ฆ„, keyCode ์ด์ •๋ฆฌ

by IworldT 2021. 8. 25.
๋ฐ˜์‘ํ˜•

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ (JavaScript) ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๋‹ค ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ํ™”๋ฉด์ด ์•„๋งˆ ์กฐํšŒํ™”๋ฉด, ๋˜๋Š” ๋กœ๊ทธ์ธ ํ™”๋ฉด ์ผ ๊ฒƒ์ด๋‹ค.

๊ทธ ๋•Œ ์šฐ๋ฆฌ๋Š” ๊ฒ€์ƒ‰์ฐฝ์„ input ํƒœ๊ทธ๋กœ ๋งŒ๋“ค๊ฒŒ ๋˜๊ณ , ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ๋˜๋Š” ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ํ†ตํ•ด์„œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•  ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๋Ÿฌ ์‚ฌ์ดํŠธ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ '์—”ํ„ฐ'๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ตณ์ด ๋งˆ์šฐ์Šค๋กœ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์ง€ ์•Š์•„๋„ ๊ธฐ๋Šฅ์ด ์ˆ˜ํ–‰๋˜๋„๋ก ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š”  ์—”ํ„ฐ ๋ˆ„๋ฅด๋ฉด ๊ธฐ๋Šฅ์ด ์ˆ˜ํ–‰๋˜๋„๋ก ํ•˜๋Š” ์—”ํ„ฐํ‚ค ์ด๋ฒคํŠธ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ๋Š” 3๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

JS ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ

 

key down : ํ‚ค๊ฐ€ ๋ˆŒ๋ ธ์„ ๋•Œ ๋ฐœ์ƒ

keypress : ํ‚ค๊ฐ€ ๋ˆŒ๋ฆฐ ์ƒํƒœ์ผ ๋•Œ -- ๋”์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ด ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

keyup : ํ‚ค ๋ˆ„๋ฆ„์ด ํ•ด์ œ๋  ๋•Œ

 

๋”ฐ๋ผ์„œ ๊ตณ์ด ์—”ํ„ฐ๊ฐ€ ์•„๋‹ˆ์–ด๋„ ๋ชจ๋“  ํ‚ค๋ณด๋“œ ํ‚ค์˜ ๊ฐ’์— ๋”ฐ๋ฅธ ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

key down์€ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„ ๋ฐœ์ƒํ•˜๊ณ , keyup์€ ๋ˆŒ๋ฆฐ ํ‚ค๋ฅผ ๋—์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

keypress๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ๊ณ  ๊ถŒ๊ณ ํ•˜๋‹ˆ ์•Œ์•„๋ณด์ง€ ๋ง๋„๋ก ํ•˜์ž..

 

 

ํ‚ค ์ด๋ฒคํŠธ ๋“ฑ๋กํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ

ํ‚ค๋ณด๋“œ์˜ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋–ผ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์„ ์•Œ์•˜์œผ๋‹ˆ, ๊ทธ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์•„ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•ด ์ค„ ๊ณณ์„ ์ฐพ์•„๋ณด์ž. ๊ฒ€์ƒ‰์ฐฝ์„ ๋งŒ๋“ ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์—, ๊ฒ€์ƒ‰์ฐฝ๊ณผ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ๋‹ค.

 

<input type="text" id="srch" onkeyup="onKeyUp(e)"/>
<button type="button" title="์กฐํšŒ" id="btnSrch" onclick="doSearch()"/>
๋ฐ˜์‘ํ˜•

 

๊ฒ€์ƒ‰ ๋‹จ์–ด๋ฅผ ์ž…๋ ฅํ•  input ์ฐฝ๊ณผ, ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์—ˆ๋‹ค. 

 

๊ทธ๋ ‡๋‹ค๋ฉด ํ‚ค๊ฐ€ ๋ˆŒ๋ ธ๋‹ค ๋–ผ์ง€๋Š” ์ˆœ๊ฐ„์ธ onkeyup ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์„ ๊ณณ์€ ๋ฒ„ํŠผ์ด ์•„๋‹Œ input์ด๋‹ค.

๋งŒ์•ฝ ๋กœ๊ทธ์ธ ์‹œ ์—”ํ„ฐ ๋ˆ„๋ฅด๋ฉด ๋ฐ”๋กœ ๋กœ๊ทธ์ธ์ด ๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ค‘์ด๋ผ๋ฉด, ์•„์ด๋””-๋น„๋ฒˆ ์ˆœ์œผ๋กœ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋ฏ€๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” input ํƒœ๊ทธ ๋‚ด์— onkeyup ์ด๋ฒคํŠธ์˜ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

onkeyup ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›๊ณ  ์ˆ˜ํ–‰ํ•  ์ฝœ๋ฐฑํ•จ์ˆ˜์—๋Š” ์ด๋ฒคํŠธ ์ •๋ณด๋ฅผ e๋กœ ๋‹ด์•„์ค€๋‹ค.

 

์ด์ œ  js ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž.

function onKeyUp(e){
    if (e.keyCode == 13){
    	doSearch();
    }
    /**
    if (e.key == 'Enter'){
        doSearch();
    }
    */
    /**
    if (e.code == 'Enter'){
        doSearch();
    }
    */
}

function doSearch(){
	/** ๋ฒ„ํŠผ ํด๋ฆญ์ด๋‚˜ ์—”ํ„ฐ๊ฐ€ ํด๋ฆญ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ */
}

 

ํ‚ค๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด onKeyUp() ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋  ๊ฒƒ์ด๊ณ , ๊ทธ ๋•Œ ๋ฐ›์€ e ๊ฐ์ฒด์—๋Š” keyCode, key, code๋ผ๋Š” ์ •๋ณด๊ฐ€ ์กด์žฌํ•œ๋‹ค.

1. ์ฒซ ๋ฒˆ์งธ if ๋ฌธ :

Enterํ‚ค์˜ keyCode๋Š” 13์ด๋ฏ€๋กœ, ์œ„์ฒ˜๋Ÿผ ์ด๋ฒคํŠธ์˜ keyCode๊ฐ€ 13์ด๋ผ๋ฉด ๋ฒ„ํŠผ ํด๋ฆญ๊ณผ ๊ฐ™์€ doSearch()ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

2. ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ๋‘๋ฒˆ ์งธ if ๋ฌธ :

keyCode๊ฐ€ ์•„๋‹Œ ์ง์ ‘ key ์ด๋ฆ„์œผ๋กœ ์ž…๋ ฅํ•ด์ค„์ˆ˜๋„ ์žˆ๋‹ค. ์—”ํ„ฐํ‚ค์˜ key ์ด๋ฆ„์€ Enter์ด๋‹ค.

3. ์ฃผ์„ ์ฒ˜๋ฆฌ๋œ ์„ธ๋ฒˆ ์งธ if ๋ฌธ :

code๋กœ ์ž…๋ ฅํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ์—”ํ„ฐ๋Š” keyCode์™€ code๊ฐ€ ๋™์ผํ•˜์ง€๋งŒ, ๋‹ค๋ฅธ ํ‚ค๋“ค์€ ๋‹ค๋ฅด๋ฏ€๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

ํ‚ค๋ณด๋“œ keyCode ์™€ key

 code ์ด๋ฆ„ ๊ฐ’ ํ™•์ธํ•˜๊ธฐ 

์ง์ ‘ key์˜ ์ด๋ฆ„ ๊ฐ’๊ณผ ์ฝ”๋“œ๋„ ๋Œ๋ ค๋ณผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค.

https://developer.mozilla.org/en-US/docs/Web/API/Document/keyup_event

 

Document: keyup event - Web APIs | MDN

The keyup event is fired when a key is released.

developer.mozilla.org

 

์œ„์˜ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•ด๋ณด๋ฉด ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์‹คํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค. 

 

๋ฐ”๋กœ ์ด๋ถ€๋ถ„์ธ๋ฐ, 3๋ฒˆ์งธ ๋„ค๋ชจ์นธ์„ ํด๋ฆญํ•˜์—ฌ ํฌ์ปค์Šค๋ฅผ ์ฃผ์ž.

๊ทธ๋ฆฌ๊ณ  ํ‚ค๋ณด๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ‚ค๋ณด๋“œ์˜ key ๊ฐ’์ด log๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค. ์›ํ•˜๋Š” ํ‚ค๋ณด๋“œ์˜ ํ‚ค ๊ฐ’์„ ์ด๋ ‡๊ฒŒ ์ฐพ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

←  →  ์ŠคํŽ˜์ด์Šค๋ฐ”  1  2  ์ŠคํŽ˜์ด์Šค๋ฐ”  I  T  ์—”ํ„ฐ

๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ˆ„๋ฅธ ๋ชจ์Šต์ด๋‹ค. ๋ˆ„๋ฅธ ํ‚ค๋ณด๋“œ ํ‚ค์— ๋”ฐ๋ผ key ์ด๋ฆ„์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 keyCode ๊ฐ’, key ๊ฐ’ ํ™•์ธํ•˜๊ธฐ 

http://keycode.info/

 

JavaScript Event KeyCodes

Press any key to get the JavaScript event keycode

keycode.info

 

๋‚ด๊ฐ€ ๋ˆ„๋ฅด๋Š” key์— ๋”ฐ๋ผ keyCode๊ฐ’์ด ํ™”๋ฉด์— ๋‚˜์˜ค๋Š” ์‚ฌ์ดํŠธ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด 13์ด๋ผ๋Š” keyCode ๊ฐ’์ด ํฌ๊ฒŒ ๋‚˜์˜จ๋‹ค.

๋˜๋Š” ํ•˜๋‹จ์— key์˜ ๊ฐ’๊ณผ code์˜ ๊ฐ’ ๋“ฑ์ด ๋‚˜์˜จ๋‹ค.

 

์—”ํ„ฐ์™€ ๊ฐ™์€ ํŠน์ˆ˜ํ‚ค์™€ ๋‹ค๋ฅด๊ฒŒ i๋Š” key ๊ฐ’๊ณผ code์˜ ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ผญ ์—”ํ„ฐ ํ‚ค ๋ฟ๋งŒ์ด ์•„๋‹Œ ๋‹ค์–‘ํ•œ ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ๋ฅผ ํŽ˜์ด์ง€์— ์ ์šฉํ•ด๋ณด์ž.

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€