Javascript 重置纸张输入的验证?
我有这样一个纸张输入元素:Javascript 重置纸张输入的验证?,javascript,html,polymer,polymer-1.0,web-component,Javascript,Html,Polymer,Polymer 1.0,Web Component,我有这样一个纸张输入元素: <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> 验证 当我验证输入
<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>
验证
当我验证输入并且验证失败时,它看起来是这样的:
<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>
在不更改输入的情况下,我希望以编程方式重置验证状态,使其看起来像以前一样:
如何重置验证状态以获取未验证的视图而不更改输入?如果您希望空值有效,则只需删除require属性即可 在更复杂的情况下,我想你应该这样做:
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);
}
}
});
只需将纸张输入元素的无效属性设置为false,例如
this.$.inputForValidation.invalid = false;
这可能不是最好的方法,但您可以将
纸张输入的invalid
属性设置为false,因为中似乎没有任何方法允许您这样做。您所说的“不更改输入”是什么意思?如果输入模式正常,可以通过再次调用“inputForValidation.validate()”删除错误消息,否?