2012-12-28 10 views
7

ProblemaAngularJs: come formattare i dati in un input?

ho bisogno di formattare un campo di input visivo al fine di aiutare l'utente a sapere quello che dovrebbe digitare come un numero di telefono. Ad esempio, desidero accettare un numero di telefono come prefisso di 3 cifre, prefisso di 3 cifre e suffisso di 4 cifre: (207) 555-1212. Voglio:

  1. forniscono l'aiutante formattazione al campo di inserimento - queste parentesi e il trattino
  2. non voglio i caratteri 'aiuto' da inserire nei dati reali posso conservare nel mio modello .
  3. Mentre l'utente digita, voglio che le parentesi vengano visualizzate magicamente, quindi il trattino appare anche nel punto giusto.

Qual è il modo migliore per farlo?

Nota: Questo non è per la visualizzazione di un numero - Potrei usare un filtro per questo. Questo è per la formattazione dei dati all'interno di un campo input.

Grazie per il vostro aiuto!

+0

forse hai bisogno di un campo di input personalizzato (un widget)? – akonsu

risposta

14

Se siete alla ricerca di una soluzione semplice, si potrebbe dare AngularUI una prova, http://angular-ui.github.com/

Questo è l'esempio dalla sezione "Mask" di quella pagina:

<input ng-model="maskDemo" ui-mask="'99-99-9999'"> 

Il "9" Sono numeri e altre cose sono solo una maschera/segnaposto. Dovrebbe solo presentare i valori attuali. Dovresti modificare la maschera per includere parentesi e qualsiasi altra cosa tu possa aver bisogno.

+0

L'unico lato negativo di questo è che quando il numero di telefono viene visualizzato altrove o salvato in un database, sarà simile a "9999999999". – MyCodeSucks

+8

@MyCodeSucks che di solito è quello che vorrai, togli le cifre non digitate, quindi ogni volta che vuoi mostrare il tuo numero formattato, devi solo applicare la 'ui-mask' ad esso. –

Problemi correlati