PDA

View Full Version : [Javascript - JQuery] Controllo digitazione progressiva


franksisca
07-05-2013, 16:05
Sapete se esiste qualche componente JQuery o una qualche funzione Javascript che mi permetta, in una textArea, di digitare delle stringhe in un determinato formato, ma progressivamente, ovvero durante la digitazione stessa.

Per esempio, se devo inserire una data in formato dd/MM/yyyy se scrivo 2 in automatico deve mettermi 02/ , poi se premo 3 mi scrive 23/ e così via.

esiste qualcosa del genere (uso già un datepicker ma mi è stato espressamente richiesto questa funzionalità).

Ovviamente lo 02 è opzionale, l'importante è che se scrivo 23 mi aggiunga / dopo 2 caratteri numerici...

grazie mille

wingman87
07-05-2013, 17:01
Cercando con google "jquery formatted input" si trovano un po' di plugin ma non li ho mai usati... Non ho trovato nulla però per le textarea, solo per gli input.

franksisca
07-05-2013, 17:13
Cercando con google "jquery formatted input" si trovano un po' di plugin ma non li ho mai usati... Non ho trovato nulla però per le textarea, solo per gli input.

si mi andrebbe bene, purtroppo sto cercando quello ma non trovo nulla che fà quello che serve a me, o meglio, lo fanno tutti parzialmente

kwb
08-05-2013, 17:20
Una cosa così pare piuttosto complessa da implementare e detta così come l'hai spiegata non sembra nemmeno possibile. Ti propongo un esempio.
Poniamo che nel textbox scrivo 2 allora, da quello che hai detto, mi dovrebbe scrivere 02 automaticamente. Poi se aggiungo un 3, toglie lo 0, sposta il 2 e mi mette un 3, dandomi 23. Ok
Se però ora faccio un'altra prova e voglio scrivere 02/23, faccio:
2 -> 02
3 -> 23
Come faccio a scrivere 23 nel mese e non nel giorno? :D

Il problema di fondo è che se si tratta di un unico textbox, a mio avviso non c'è modo di far capire allo script come si deve comportare se il prossimo numero che vuoi inserire deve far parte delle unità del giorno o se essere parte del mese.. Non c'è modo di discriminare i due comportamenti illustrati sopra.

Se invece vuoi implementare una cosa come il primo comportamento che ti ho mostrato, io penso che con un qualche if per controllare quante cifre hai aggiunto si possa fare. Chiaramente sarà necessario associare la funzione all'evento onchange ( mi pare?? ), insomma, quello che controlla il in tempo reale.
http://stackoverflow.com/questions/1307862/duplicate-text-from-one-textarea-to-another-hidden

franksisca
08-05-2013, 17:51
Una cosa così pare piuttosto complessa da implementare e detta così come l'hai spiegata non sembra nemmeno possibile. Ti propongo un esempio.
Poniamo che nel textbox scrivo 2 allora, da quello che hai detto, mi dovrebbe scrivere 02 automaticamente. Poi se aggiungo un 3, toglie lo 0, sposta il 2 e mi mette un 3, dandomi 23. Ok
Se però ora faccio un'altra prova e voglio scrivere 02/23, faccio:
2 -> 02
3 -> 23
Come faccio a scrivere 23 nel mese e non nel giorno? :D

Il problema di fondo è che se si tratta di un unico textbox, a mio avviso non c'è modo di far capire allo script come si deve comportare se il prossimo numero che vuoi inserire deve far parte delle unità del giorno o se essere parte del mese.. Non c'è modo di discriminare i due comportamenti illustrati sopra.

Se invece vuoi implementare una cosa come il primo comportamento che ti ho mostrato, io penso che con un qualche if per controllare quante cifre hai aggiunto si possa fare. Chiaramente sarà necessario associare la funzione all'evento onchange ( mi pare?? ), insomma, quello che controlla il in tempo reale.
http://stackoverflow.com/questions/1307862/duplicate-text-from-one-textarea-to-another-hidden

in effetti la cosa è abbastanza complessa...per ora mi sono fermato all'auto inserimento delle / nelle posizioni 2 e 5 (xx/xx/xxxx) e bloccare a 10 caratteri.

l'autoaggiunta degli zero prima e dopo è davvero rognosa...anche perchè il cliente mi ha detto "se scrivo 2212 in automatico voglio 02/02/2012"...al chè io :wtf: :wtf: :wtf:

quindi diciamo che al momento la funzionalità l'ho rimandata in analisi (per non finirci io), ma appena finisco le funzionalità maggiori un pò di tempo vorrei perdercelo...

kwb
08-05-2013, 19:42
Vedi tu, io alcune idee spero di avertele date...

l'autoaggiunta degli zero prima e dopo è davvero rognosa...anche perchè il cliente mi ha detto "se scrivo 2212 in automatico voglio 02/02/2012"...al chè io :wtf: :wtf: :wtf:

Mha, la questione di fondo è che questo tipo di scrittura è soggetto a interpretazioni differenti... Per me 2212 potrebbe anche tranquillamente essere 22/02/12.
Forse non si rende conto del problema di base che c'è con questo tipo di scrittura...

OoZic
09-05-2013, 09:13
Mha, la questione di fondo è che questo tipo di scrittura è soggetto a interpretazioni differenti... Per me 2212 potrebbe anche tranquillamente essere 22/02/12.
Forse non si rende conto del problema di base che c'è con questo tipo di scrittura...

sembra una puttanata colossale infatti...
io cercherei di far ragionare il cliente sul fatto che un metodo del genere non ha nessun senso.

;)