๐ Confirm password ํผ ์ฝ๊ฒ ๊ตฌํํ๊ธฐ
๋น๋ฐ๋ฒํธ ์ฌํ์ธ ๊ธฐ๋ฅ ๊ตฌํ
๋ input ์ ๋ ฅ ํ๊ทธ์ฐฝ์ด ์๊ณ , ์ด ๋ input์ฐฝ์ ๊ฐ(๋น๋ฐ๋ฒํธ)๊ฐ ๊ฐ์์ผ submit์ด ๋๊ฒ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ, ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ์ css๋ก ํ๋์ฝ๋ฉํ๊ฑฐ๋ ๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
๊ทธ์ค, ์ด๋ฒ์๊ฐ์๋ setCustomValidity() ๋ฅผ ํตํด ๊ฐ๋จํ๊ฒ Confirm password๋ฅผ ๊ตฌํํด๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๊ฒ ๋ค.
setCustomValidity
HTMLObjectElement ์ธํฐํ์ด์ค ์ setCustomValidity() ๋ฉ์๋ ๋ ์์์ ๋ํ ์ฌ์ฉ์ ์ ์ ์ ํจ์ฑ ๋ฉ์์ง๋ฅผ ์ค์ ํ๋ค.
์๋์ฌ์ง์์ ๋ณผ์ ์๋ฏ์ด input ํ์ ์ ์ ์ ํ์ง ์๋ ๊ฐ์ ๋ฃ์์๋ ๋ธ๋ผ์ฐ์ ์์ ๋์ฐ๋ ๋๋ํ ๋งํ์ ์ ๋ด์ฉ์ ์ค์ ํด ์ค์ ์๋ค.
๋จ, ์ค๋ฅ๋ฉ์ธ์ง ๋งํ์ ์ ๋ด์ฉ์ api๋ฅผ ํตํด ์ค์ ํด์ฃผ๊ฒ ๋๋ฉด, ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋น์ด ์์ง ์์ ํ ์์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ์ง ์๊ณ ์ ์ถ๋์ง ์๋ ๋ค๋ ํน์ง์ด ์๋๋ฐ, ์ด๋ฅผ ์ด์ฉํด ๋น๋ฐ๋ฒํธ ์ฌํ์ธ ๋ก์ง์ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์๋ค.
<form class="pure-form">
<fieldset>
<legend>Confirm password with HTML5</legend>
<input type="password" placeholder="Password" id="password" required>
<input type="password" placeholder="Confirm Password" id="confirm_password" required>
<button type="submit" class="pure-button pure-button-primary">Confirm</button>
</fieldset>
</form>
var password = document.getElementById("password")
,confirm_password = document.getElementById("confirm_password");
function validatePassword(){
if(password.value != confirm_password.value) { // ๋ง์ผ ๋ ์ธํ ํ๋๊ฐ์ด ๊ฐ์ง ์์ ๊ฒฝ์ฐ
// setCustomValidity์ ๊ฐ์ ์ง์ ํด ๋ฌด์กฐ๊ฑด ๊ฒฝ๊ณ ํ์๊ฐ ๋๊ฒ ํ๊ณ
confirm_password.setCustomValidity("Passwords Don't Match");
}
else { // ๋ง์ผ ๋ ์ธํ ํ๋๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ
// ์ค๋ฅ๊ฐ ์์ผ๋ฉด ๋ฉ์์ง๋ฅผ ๋น ๋ฌธ์์ด๋ก ์ค์ ํด์ผํ๋ค. ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋น์ด ์์ง ์์ ํ ์์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ์ง ์๊ณ ์ ์ถ๋์ง ์๋๋ค.
// ๋ฐ๋ผ์ ๋น๊ฐ์ ์ฃผ์ด submit ์ฒ๋ฆฌ๋๊ฒ ํ๋ค
confirm_password.setCustomValidity('');
}
}
password.onchange = validatePassword;
confirm_password.onkeyup = validatePassword;
See the Pen Confirm PWD by barzz12 (@inpaSkyrim) on CodePen.