์๋ฐ์คํฌ๋ฆฝํธ (JavaScript) ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ๋๊ตฌ๋ ๋ค ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ์ฑํ๋ ํ๋ฉด์ด ์๋ง ์กฐํํ๋ฉด, ๋๋ ๋ก๊ทธ์ธ ํ๋ฉด ์ผ ๊ฒ์ด๋ค.
๊ทธ ๋ ์ฐ๋ฆฌ๋ ๊ฒ์์ฐฝ์ input ํ๊ทธ๋ก ๋ง๋ค๊ฒ ๋๊ณ , ๊ฒ์ ๋ฒํผ ๋๋ ๋ก๊ทธ์ธ ๋ฒํผ์ ํตํด์ ๊ธฐ๋ฅ์ ์ํํ๊ฒ ํ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ์ฌ๋ฌ ์ฌ์ดํธ์์ ๊ณตํต์ ์ผ๋ก '์ํฐ'๋ฅผ ์ ๋ ฅํ๋ฉด ๊ตณ์ด ๋ง์ฐ์ค๋ก ๋ฒํผ์ ํด๋ฆญํ์ง ์์๋ ๊ธฐ๋ฅ์ด ์ํ๋๋๋ก ํ๊ณ ์๋ค. ๊ทธ๋์ ์ด๋ฒ ํฌ์คํ ์์๋ ์ํฐ ๋๋ฅด๋ฉด ๊ธฐ๋ฅ์ด ์ํ๋๋๋ก ํ๋ ์ํฐํค ์ด๋ฒคํธ ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ๋ค.
ํค๋ณด๋ ์ด๋ฒคํธ
์๋ฐ์คํฌ๋ฆฝํธ ํค๋ณด๋ ์ด๋ฒคํธ๋ 3๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
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
์์ ์ฌ์ดํธ์ ์ ์ํด๋ณด๋ฉด ์ง์ ์ฝ๋๋ฅผ ์คํํด๋ณผ ์ ์๋ ๋ถ๋ถ์ด ์๋ค.
๋ฐ๋ก ์ด๋ถ๋ถ์ธ๋ฐ, 3๋ฒ์งธ ๋ค๋ชจ์นธ์ ํด๋ฆญํ์ฌ ํฌ์ปค์ค๋ฅผ ์ฃผ์.
๊ทธ๋ฆฌ๊ณ ํค๋ณด๋๋ฅผ ์ ๋ ฅํ๋ฉด ํค๋ณด๋์ key ๊ฐ์ด log๋ก ๋ํ๋๋ค. ์ํ๋ ํค๋ณด๋์ ํค ๊ฐ์ ์ด๋ ๊ฒ ์ฐพ์ ์๋ ์๋ค.
← → ์คํ์ด์ค๋ฐ 1 2 ์คํ์ด์ค๋ฐ I T ์ํฐ
๋ฅผ ์์๋๋ก ๋๋ฅธ ๋ชจ์ต์ด๋ค. ๋๋ฅธ ํค๋ณด๋ ํค์ ๋ฐ๋ผ key ์ด๋ฆ์ด ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
keyCode ๊ฐ, key ๊ฐ ํ์ธํ๊ธฐ
๋ด๊ฐ ๋๋ฅด๋ key์ ๋ฐ๋ผ keyCode๊ฐ์ด ํ๋ฉด์ ๋์ค๋ ์ฌ์ดํธ์ด๋ค.
์ด๋ ๊ฒ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด 13์ด๋ผ๋ keyCode ๊ฐ์ด ํฌ๊ฒ ๋์จ๋ค.
๋๋ ํ๋จ์ key์ ๊ฐ๊ณผ code์ ๊ฐ ๋ฑ์ด ๋์จ๋ค.
์ํฐ์ ๊ฐ์ ํน์ํค์ ๋ค๋ฅด๊ฒ i๋ key ๊ฐ๊ณผ code์ ๊ฐ์ด ๋ค๋ฅธ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ ๊ผญ ์ํฐ ํค ๋ฟ๋ง์ด ์๋ ๋ค์ํ ํค๋ณด๋ ์ด๋ฒคํธ๋ฅผ ํ์ด์ง์ ์ ์ฉํด๋ณด์.
'Basics > Develop' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ...props ? ์์ฌ์ฐ์ฐ์(Rest Parameter)์ ์ ๊ฐ๊ตฌ๋ฌธ(Spread syntax) (0) | 2021.09.11 |
---|---|
[JS]JSON key ๊ฐ์ ธ์ค๊ธฐ, keys(), getOwnPropertyNames(), for ๋ฑ๋ฑ ๋น๊ต (0) | 2021.09.07 |
๋งฅ(mac) VSCode ๋จ์ถํค ์ด์ ๋ฆฌ! ์๋์ฐ ๋จ์ถํค์ ๋น๊ต! (0) | 2021.08.20 |
[CMD] C:์์ D: ๋ก cd (cd c: to d:) (0) | 2021.07.20 |
[์์คํ ํ๋ก๊ทธ๋๋ฐ]ํ์ดํ ํต์ (0) | 2020.11.09 |
๋๊ธ