Desen ve bir normal ifade kullanan cevaplar, kullanıcının parolasını giriş özelliklerine düz metin olarak yazar pattern='mypassword'
. Bu yalnızca geliştirici araçları açıksa görülebilir, ancak yine de iyi bir fikir gibi görünmüyor.
Eşleşmeyi kontrol etmek için desen kullanmanın diğer bir sorunu, parolanın doğru biçimde olup olmadığını kontrol etmek için desen kullanmak isteyebilmenizdir, örneğin karışık harfler ve sayılar.
Ayrıca kullanıcı girişler arasında geçiş yaparsa bu yöntemlerin işe yaramayacağını düşünüyorum.
İşte biraz daha JavaScript kullanan ancak girişlerden biri güncellendiğinde basit bir eşitlik kontrolü yapan ve ardından özel bir HTML geçerliliği ayarlayan çözümüm. Her iki giriş de e-posta formatı veya parola karmaşıklığı gibi bir model için test edilebilir.
Gerçek bir sayfa için giriş türlerini 'parola' olarak değiştirirsiniz.
<form>
<input type="text" id="password1" oninput="setPasswordConfirmValidity();">
<input type="text" id="password2" oninput="setPasswordConfirmValidity();">
</form>
<script>
function setPasswordConfirmValidity(str) {
const password1 = document.getElementById('password1');
const password2 = document.getElementById('password2');
if (password1.value === password2.value) {
password2.setCustomValidity('');
} else {
password2.setCustomValidity('Passwords must match');
}
console.log('password2 customError ', document.getElementById('password2').validity.customError);
console.log('password2 validationMessage ', document.getElementById('password2').validationMessage);
}
</script>