Я перехожу на Polymer 1.0 с Polymer 0.5 и не могу сделать простую валидацию - классический сценарий с паролем и полем повторного ввода пароля.
С Polymer 0.5 у меня было:
<paper-input-decorator id="passwordDecId" label="New password (8 caratteri almeno)" floatingLabel error="campo obbligatorio!">
<input id="passwordId" onchange="validatePassword()" is="core-input" type="password" name="password" required pattern=".{8,32}">
</paper-input-decorator>
<paper-input-decorator id="reenterPasswordDecId" label="Re-enter password (8 caratteri almeno)" floatingLabel error="campo obbligatorio!">
<input id="reenterPasswordId" onchange="validatePassword()" is="core-input" type="password" name="reenterPassword" required pattern=".{8,32}">
</paper-input-decorator>
и функция validatePassword была:
function validatePassword() {
var passwordDecorator = document.getElementById('passwordDecId');
var passwordInput = document.getElementById('passwordId');
var reenterPasswordDecorator = document.getElementById('reenterPasswordDecId');
var reenterPasswordInput = document.getElementById('reenterPasswordId');
var pass2 = reenterPasswordInput.value;
var pass1 = passwordInput.value;
if (pass1 != pass2) {
reenterPasswordInput.setCustomValidity("Passwords Don't Match");
} else {
// empty string means no validation error
reenterPasswordInput.setCustomValidity('');
}
passwordDecorator.isInvalid = !passwordInput.validity.valid;
reenterPasswordDecorator.isInvalid = !reenterPasswordInput.validity.valid;
}
и это сработало, но теперь, после перехода на Polymer 1.0, я больше не использую paper-input-decorator и поэтому хотел бы делать все только с помощью paper-input:
<paper-input id="passwordId" onchange="validatePassword()" name="password" type="text" label="New password" auto-validate required pattern=".{1,32}" error-message="1 caratteri almeno"></paper-input>
<paper-input id="reenterPasswordId" onchange="validatePassword()" name="reenterPassword" type="text" label="Re-enter password" auto-validate required pattern=".{1,32}" error-message="1 caratteri almeno"></paper-input>
Я не знаю, как изменить функцию validatePassword
, чтобы отображалась ошибка, когда длина двух паролей превышает 1 символ, но значения разные, и когда пользователь нажимает кнопку отправки или когда фокус входных данных теряется.