Ответ 1
В интерфейсе HTMLInputElement нет такого свойства, как valid
или invalid
.
Вы можете использовать метод setCustomValidity(error)
с проверкой собственной формы.
Что касается вашего script, вот демо, которое должно работать во всех браузерах, совместимых с HTML5:
$('input[name=pass2]').keyup(function () {
'use strict';
if ($('input[name=pass]').val() === $(this).val()) {
$('#pass_hint').html('match');
this.setCustomValidity('');
} else {
$('#pass_hint').html('mismatch');
this.setCustomValidity('Passwords must match');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action='#'>
<p>Password:
<input name=pass type=password required>
</p>
<p>Verify:
<input name=pass2 type=password required>
</p>
<p id=pass_hint></p>
<button type=submit>Submit</button>
</form>