2014-07-24 13 views
9

Tutto quello che voglio è essere in grado di ottenere l'input da un elemento polimerico < input di carta > e avvisarlo onchange SENZA creare un elemento polimerico personalizzato.Evento di modifica dell'ingresso del polimero

temi: on-cambiamento non fa nulla dubito this.value farà di tutto

Pseudocodice:

<!DOCTYPE html> 
<html> 
    <head><!--insert proper head elements here--></head> 
    <body> 
    <paper-input floatingLabel label="test" on-change="alert(this.value)"></paper-input> 
    </body> 
</html> 

risposta

6

Il on-*declarative event handlers sono zucchero sintattico fornita da Polymer, così on-change won lavorare fuori da un elemento Polymer. Si può fare la stessa cosa in vaniglia Javascript utilizzando querySelector e addEventListener:

<paper-input floatingLabel label="test"></paper-input> 

<script> 
    document.querySelector('paper-input').addEventListener('change', function(event) { 
    console.log(event.target.value); 
    }); 
</script> 
0

stavo lavorando con il paper-cursore e scoperto che il "onchange" non fare nulla, ma "onchange" innescato quello Volevo. Poiché l'input della carta è un elemento Polymer, dovrebbe funzionare con la gestione dichiarativa degli eventi.

+1

onchange = "" è un vecchio modo di movimentazione e eventi JavaScript imperativi. addEventListener nella risposta sopra è corretta. Inoltre, on-change = "" non è lo stesso di onchange = "". Il motivo per cui l'originale on-change sopra elencato non funzionava è perché devi dargli qualcosa di simile: on-change = "{{myTestClick}}" e nel codice fai myTestClick: function (evento, dettaglio, mittente) {alert ('ciao'); } Sono pensati per essere usati dall'implementazione del tuo elemento. Non fuori – David

14

Non so se il PO voleva un cambiamento richiamata durante la digitazione ... ma per Polymer 1.0+ si possono ascoltare i cambiamenti durante la digitazione è sufficiente utilizzare il on-input invece di on-change "evento"

<paper-input label="Enter search term" on-input="search" value="{{searchTerm}}"> 
5

<paper-input> elemento sparerà 'valore' evento di modifica di proprietà (un evento DOM non spumeggiante quando una proprietà 'valore' modifiche)

elementi di dichiarazione:

<paper-input label="Enter search term" 
      on-value-changed="_onSearchTermChanged" 
      value="{{searchTerm}}"> 

gestione degli eventi:

_onSearchTermChanged: function (event) { 
    console.log(event.detail.value); 
} 

Per maggiori dettagli si veda Polymer's Change Notification Events

+0

perché questo non è da nessuna parte nei documenti di input cartaceo! Sembra che questo evento sia estremamente importante e tuttavia non riesco a trovarlo da nessuna parte nella sua documentazione. –

Problemi correlati