2017-02-15 2 views
0

für einige Tage Ich habe Seraching warum meine Eisen-Form mit meinem Polymer-Element nicht richtig funktionieren. Wenn ich sehen möchte, wie mein Wert aus meinem Papier-Textbereich aussieht, kann ich das nicht, weil meine Datei meine ID nicht erkennt: feedbackForm. Hier ist mein Code:Polymer 1.0 Eisenform verweigern, um Daten anzuzeigen

<form is="iron-form" method="get" action="/" id="feedbackForm"> 
     <paper-textarea name="feedbacks" value="{{feedbackValue::input}}" 
         label="Explain your feedback - required" required></paper-textarea> 
     <paper-checkbox name="read" required>You must check this box</paper-checkbox> 
     <br> 
     <paper-button class="custom indigo popup" type="submit" raised onclick="submitForm(event)"></iron-icon> 
      Submit 
     </paper-button> 
     <div class="output"></div> 
    </form> 

Und hier ist mein Skript:

<script> 

    function submitForm(event) { 
     console.log('enfin'); 
     Polymer.dom(event).localTarget.parentElement.submit(); 
     console.log(Polymer.dom(event).localTarget.parentElement); 
    } 

    feedbackForm.addEventListener('iron-form-submit', function (event) { 
     this.querySelector('.output').innerHTML = JSON.stringify(event.detail); 
    }); 

    Polymer({ 
     is: 'at-feedback-panel', 

    }); 


</script> 

Kennt jemand was mit Eisen-Form vorgeht. Wenn ich das versuche, sagt mir mein Browser, dass feedbackForm unbekannt ist.

Antwort

1
  1. Versuchen "feedbackForm.addEventListener (..." zu

Ereignis-Listener Ändern "document.getElementById ('feedback') addEventListener (...":

document.getElementById('feedbackForm').addEventListener('iron-form-submit', function (event) { 
    this.querySelector('.output').innerHTML = JSON.stringify(event.detail); 
}); 
  1. Der Event-Listerner sollte aufgerufen werden, wenn das HTML-DOM bereit ist.So verschieben Sie alle script Codes in $(document).ready(function(){...})

Sieht aus wie:

<script> 

$(document).ready(function({ 

    function submitForm(event) { 
    console.log('enfin'); 
    Polymer.dom(event).localTarget.parentElement.submit(); 
    console.log(Polymer.dom(event).localTarget.parentElement); 
    } 

    document.getElementById('feedbackForm').addEventListener('iron-form-submit', function (event) { 
    this.querySelector('.output').innerHTML = JSON.stringify(event.detail); 
    }); 

    Polymer({ 
    is: 'at-feedback-panel', 
    }); 

})); 

+0

Vielen Dank für Ihre Antwort, habe ich versucht, es funktioniert nicht und es ist ein anderes Problem, das ich mit meinen Polymer Elementen bemerkt, und ich wollte, darüber sprechen es in einem anderen Thema. Alle meine document.getElementById ('myElementId') und document.querySelector ('myClassElement') sind null. So addEventListener gibt einen Fehler zurück. – arousseau

+0

'document.getElementById ('myElementId') ...' 'Fehler so zurück, scheint wie Ihre Skript-Codes Rendern, wenn HTML DOM noch nicht fertig ist. Versuchen Sie jQuery '$ (document) .ready()'. –

+0

Nun, zuvor habe ich versucht, JQuery zu verwenden, aber es scheint, dass JQuery und Polymer ein bisschen chaotisch ist: http://www.baasic.com/2014/10/03/Using-jQuery-with-Web-components/ Aber Ich werde erneut versuchen, einen Weg zu finden, JQuery im Polymerelement zu verwenden. – arousseau