[javascript] <input> ํ๊ทธ์ ์ซ์๋ง ์ ๋ ฅ (์ ๊ท์ ์ฌ์ฉ)
input ํ๊ทธ์ number ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํจ์ ๋ฐ๋ผ ํ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๊ฐ ๊ณ์ฐ๋์ด์ผํ๋ ๊ฒฝ์ฐ,
ํด๋น input box์๋ string ํ์ ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ฉด ์๋๋ค.
@input ํ๊ทธ๋ฅผ ์จ์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ , ๊ทธ๋๊ทธ๋ ๊ณ์ฐ์ ํด์ฃผ๊ธฐ ๋๋ฌธ์
string์ด ๋ค์ด์ค๋ฉด ๋ฐ๋ก NaN ๊ฐ์ด ๋์ด๋ฒ๋ฆฌ๋ฏ๋ก, ๋ค์ number๋ฅผ ์ ๋ ฅํด๋ NaN์ด ๋์ด๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ๊ณ์ฐ์ด ๋ถ๊ฐํ๋ค.
๊ฒฐ๋ก ์, input ๋ฐ์ค์ ์ ๊น์ด๋ผ๋ string์ด ์ ๋ ฅ๋์ด์๋ ์๋๋ ์ํฉ
<์๋ชป๋ ๋ฐฉ๋ฒ>
๋ณดํต ์ด๋ ๊ฒ type์ number๋ก ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ, ์ด๊ฑด ์ ๊น์ด๋๋ง string ๊ฐ์ด ์ ๋ ฅ๋ ํ ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ @input์ ๊ฐ์ง๋๋ค.
<input type="number" @input="changeYearly($event, rowData, index)"/>
<ํด๊ฒฐ>
type์ text๋ก ๋ฐ๊พธ๊ณ , oninput์ ์ ๊ท์์ ๋ฃ์ด ์ซ์๊ฐ ์๋ ๊ฐ์ด ์ ๋ ฅ๋๋ ๊ฒฝ์ฐ replace๋ก ๋์ฒดํ๊ฒ ํ๋ค.
<input
type="text"
oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"
@input="changeYearly($event, rowData, index)"
/>