【问题标题】:Reset validation for Paper Input?重置纸张输入的验证?
【发布时间】:2016-02-16 09:36:17
【问题描述】:

我有一个这样的纸张输入元素:

<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 的invalid 属性设置为false,因为docs 中似乎没有任何方法可以让您这样做。
  • “不改变输入”是什么意思?如果输入模式正常,您可以通过再次调用'inputForValidation.validate()'来删除错误消息,否?

标签: javascript html polymer polymer-1.0 web-component


【解决方案1】:

只要将paper-input元素的invalid属性设置为false即可,例如

this.$.inputForValidation.invalid = false;

【讨论】:

    【解决方案2】:

    在您的情况下,您希望空值有效,因此您只需删除 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);
       }
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      相关资源
      最近更新 更多