2016-02-19 23 views
6

Używam Polymer przez krótki czas, a teraz chcę uzyskać wartość wejściową papieru. Nie wiem, jak to zrobić. To nie działa:Polimer Uzyskaj wartość wejściową papieru

this.form.password 

chcę uzyskać wartość tego pola:

<paper-input label="Password" type="password" id="password" name="password" size="25" value=""></paper-input> 

Ja też chcę dostać Input składania wejścia e-mail:

<paper-input label="Login" id="email" name="email" size="25" value=""></paper-input> 

Do przesyłania używam:

<paper-button raised value="Login" type="submit" onclick="formhash(this.form, this.form.password);">Login</paper-button> 

Przy normalnych polach wprowadzania działa.

+0

używasz tego formularza w A element/komponent polimerowy? –

+0

Używam tego w papierowej karcie –

Odpowiedz

6

Można użyć document.querySelector('#password').value aby uzyskać wartość paper-input id password w zaproszeniu formhash() funkcji lub wewnątrz definicji funkcji.

Można także użyć polimeru Automatic node finding, aby uzyskać wartość elementu za pomocą jego id. W którym należy zachować formularz/dane wejściowe w niestandardowym elemencie i użyć wartości this.$.password.value, aby uzyskać wartość elementu o identyfikatorze password. Podoba Ci się to

<!-- create a custom component my-form --> 
<dom-module id="my-form"> 
    <template> 
     <form is="iron-form" id="form" method="post"> 
     <paper-input name="name" label="name" id="name"></paper-input> 
     <paper-button raised on-click="submitForm">Submit</paper-button> 
     </form> 
    </template> 
    <script type="text/javascript"> 
     Polymer({ 
      is: "my-form", 
      submitForm: function() { 
       alert(this.$.name.value); 
       if(this.$.name.value != "") // whatever input check 
        this.$.form.submit(); 
      } 
     }) 
    </script> 
</dom-module> 

<my-form></my-form> <!-- use custom-component my-form --> 
+0

Teraz mogę uzyskać wartość, ale nie mogę przesłać formularza. this. $. submit(); nie działa lub this send(); albo coś innego. Jak mogę teraz przesłać. –

+0

użyj 'this. $. Form.submit()' gdzie 'form' jest ** id ** znacznika' form' –

+0

To nie działa. Nie wiem dlaczego. –

0

Korzystanie <form is="iron-form"> pozwala na użycie <paper-input> i innych elementów wejściowych w formach https://elements.polymer-project.org/elements/iron-form

<form is="iron-form" id="form" method="post" action="/form/handler"> 
    <paper-input name="name" label="name"></paper-input> 
    <input name="address"> 
    ... 
    <paper-button raised onclick="submitForm()">Submit</paper-button> 
</form> 


function submitForm() { 
    document.getElementById('form').submit(); 
} 
+0

Ale to nie działa. Potrzebuję wartości dla formhash. Jak mogę uzyskać wartość i ją utworzyć. –

0

Jeśli nie chcesz używać <form> można też po prostu przechowywać wartości papieru wejściowych w zmiennych instancji i wykorzystać je później tam, gdzie chcesz.

Wszystko co musisz zrobić, to zapisać wejście wewnątrz wartości jak ta:

<paper-input label="Password" type="password" id="password" name="password" size="25" value="{{valueNameToStore}}"></paper-input>

a później dostęp to tak:

var myPassword = this.valueNameToStore;