2016-02-16 4 views
3

У меня есть бумага входной элемент, как это:Сбросить подтверждение для ввода бумаги?

<paper-input id="inputForValidation" required label="this input is manually validated" pattern="[a-zA-Z]*" error-message="letters only!"></paper-input> 
<button onclick="validate()">Validate!</button> 

Когда я подтвердить ввод и проверка не выглядит следующим образом:

enter image description here

без изменения ввода я хочу программно сбросить подтверждение, чтобы оно выглядело следующим образом:

enter image description here

Как сбросить состояние проверки, чтобы получить неутвержденное представление без изменения ввода?

+1

Это, вероятно, не самый лучший способ, но вы можете установить 'invalid' свойство' папье-input' к ложным, как там не кажется, любой метод в [Docs] (https://elements.polymer-project.org/elements/paper-input), который позволит вам это сделать. –

+0

Что вы подразумеваете под «без изменения ввода»? Если шаблон ввода в порядке, вы можете удалить сообщение об ошибке, снова вызвав 'inputForValidation.validate()', no? – Supersharp

ответ

1

В вашем случае, если вы хотите пустое значение является действительным, так что вы просто должны удалить атрибут требовать ...

В более сложном случае, я думаю, что вы хотите сделать что-то вроде этого:

Polymer({ 
    is: "my-element", 
    validate: function(){ 
    if(this.$.inputForValidation.value == ""){ 
    //When the input is empty we want 
    this.$.inputForValidation.removeAttribute("required"); 
    this.$.inputForValidation.validate(); 
    this.$.inputForValidation.setAttribute("required", true); 
    } 
    } 
}); 
2

Просто установите недопустимый атрибут элемента ввода бумаги на значение false, например

this.$.inputForValidation.invalid = false; 
Смежные вопросы