2015-07-29 2 views
1

как включить сообщение об ошибке для ввода бумаги внутри шаблона dom-repeat с использованием полимера 1.0?Ошибка отображения ошибки в бумажном вводе внутри dom-repeat в полимере 1.0

мой HTML-код:

<div class = "pt15 itemset2"> 
    <div class = "alignInline"> 
    <div class = "w100"> 
     <paper-input no-label-float value="{{shObj[0].value}}" label = "value" class = "profile_input profItems nopad" type = "text" prevent-invalid-input allowed-pattern = "[0-9\b]" id = "sharePreVal" maxlength = "30" autofocus on-keyup = "removeInvalid" error-message ="Please enter share value"></paper-input> 
    </div> 
    </div> 
    </div> 
<div class = "pt15 w65 pr30"> 
    <div class = "alignInline"> 
     <div class = "w100"> 
      <paper-input no-label-float label = "description" class = "profile_input profItems nopad" type = "text" id = "sharePreDesc" value="{{shObj[0].desc}}" on-keyup = "removeInvalid" error-message ="Please enter description"></paper-input> 
     </div> 
    </div> 
    </div> 
</div> 

и мой JavaScript код внутри полимерной скриптом как:

for(i=0;i<this.shObj.length;i++){ 
    if (this.shObj[i].desc == '') { 
     this.$.sharePreVal.errorMessage = 'Please enter share name'; 
     this.$.sharePreVal.invalid = true; 
     valid = false; 
    } 
    if (this.shObj[i].value == '') { 
     this.$.sharePreDesc.errorMessage='Please enter share description'; 
     this.$.sharePreDesc.invalid = true; 
     valid = false; 
    } 
} 

он отображает сообщение об ошибке, как:

TypeError: this.$.sharePreVal is undefined 
this.$.sharePreVal.errorMessage = 'Please enter share name'; 

ответ

1

Возможно, это поможет вам. Когда я начал использовать Polymer, я хотел проверить вход, поэтому способ, которым я нашел, выглядит следующим образом:

 <paper-input-container autovalidate id="containerNombre"> 
     <label>Nombre de usuario</label> 
     <input is="iron-input" id="nombre" bind-value="{{nombre}}" maxlength="5" minlength="2"> 
     <paper-input-error>{{messageNombre}}</paper-input-error> 
    </paper-input-container> 

     observers: [ 
       'nombreChanged(nombre)', 
      ], 
     nombreChanged: function (nombre) { 
      var matches = nombre.match(/\d+/g); 
      if (matches != null) { 
       this.messageNombre = "¡Solo se permiten letras!"; 
       this.$.containerNombre.invalid = true; //show message error 
      } else {//if matches is ok 
       this.$.containerNombre.invalid = false; //hide message error 
      } 
     } 
Смежные вопросы