Jawaban yang menggunakan pola dan ekspresi reguler menulis sandi pengguna ke dalam properti input sebagai teks biasa pattern='mypassword'
. Ini hanya akan terlihat jika alat pengembang terbuka tetapi sepertinya masih bukan ide yang bagus.
Masalah lain dengan menggunakan pola untuk memeriksa kecocokan adalah bahwa Anda mungkin ingin menggunakan pola untuk memeriksa apakah kata sandi dalam bentuk yang benar, misalnya huruf dan angka campuran.
Saya juga berpikir metode ini tidak akan berfungsi dengan baik jika pengguna beralih di antara input.
Inilah solusi saya yang menggunakan sedikit lebih banyak JavaScript tetapi melakukan pemeriksaan kesetaraan sederhana ketika salah satu input diperbarui dan kemudian menetapkan validitas HTML khusus. Kedua masukan tersebut masih dapat diuji untuk pola seperti format email atau kerumitan kata sandi.
Untuk halaman nyata Anda akan mengubah jenis masukan menjadi 'kata sandi'.
<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>