2017-07-25 3 views
2

iron-formをカスタム要素でテストしています。私が持っている問題は、私がenterを押したときにフォームが提出されていないということです。例えば右ここにこのフォームを入力してください上で動作します:鉄製フォームは入力時に入力しないでください

<iron-form> 
     <form id="loginForm"> 
     <paper-card heading="Welcome Back!" elevation="1" animated-shadow="true"> 
      <div class="card-content"> 
       <input type="text" label="Username" value="{{username}}"> 
       <input type="text" label="Password" value="{{password}}"> 
      </div> 
      <div class="card-actions"> 
       <button disabled$="[[fetching]]" type="submit">Login</button> 
      </div> 
     </paper-card> 
     </form> 
    </iron-form> 

私はペーパー - へのHTML入力要素を切り替えたときに問題があるiron-form-presubmit event

 connectedCallback() { 
      super.connectedCallback(); 

      this.addEventListener('iron-form-presubmit', function(event) { 
      event.preventDefault(); 
      alert('working') 
      }); 
     } 

のために聞いて私のconnectedCallback方法でイベントリスナーを持っています入力したフォームはもう入力しないでください。

<iron-form> 
     <form id="loginForm"> 
     <paper-card heading="Welcome Back!" elevation="1" animated-shadow="true"> 
      <div class="card-content"> 
       <paper-input type="text" label="Username" value="{{username}}"></paper-input> 
       <paper-input type="text" label="Password" value="{{password}}"></paper-input> 
      </div> 
      <div class="card-actions"> 
       <button disabled$="[[fetching]]" type="submit">Login</button> 
      </div> 
     </paper-card> 
     </form> 
    </iron-form> 

答えて

2

あなたは[enter]キーが押されたときに提出するメソッドを呼び出すために<iron-a11y-keys>を使用することができます。カスタム要素の定義で

<iron-a11y-keys target="loginForm" keys="enter" on-keys-pressed="submit"></iron-a11y-keys> 
<iron-form id="loginForm"> 
... 
</iron-form> 

、メソッドを追加:

submit: function() { 
    this.$.loginForm.submit(); 
} 
+0

を、これは推奨されるアプローチですか鉄の形でのバグのいくつかの並べ替えはありますか? – Rodrigo

+0

私はごめんなさい。それがバグであれば、それは[enter]イベントをコンテナに送信しない、紙の入力になっています。 – Supersharp

+1

idkが「バグ」または「制限」の場合。おそらく後者(https://github.com/PolymerElements/iron-form/issues/189) – mvhatch

関連する問題