Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    [JS]Cambiare ',' con '.'

    Ciao!
    Sapete come fare in modo che se un utente preme il tato ',' venga comunque scritto il '.'
    Questo controllo mi serve in determinati campi di un form dove vengono inseriti dei valori numerici.
    Riesco ad intercettare l'evento e a controllare il valore, ma non so come scrivre '.' al posto di ','.

    Sapete aiutarmi?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao Web01,

    se ti basta sostituire le virgole con dei punti ti basta un semplice replace
    codice:
    <input type="text" name="NomeText" onkeyup="this.value=this.value.replace(/,/g,'.');">
    se invece vuoi essere sicuro che si inseriscano solo numeri e al massimo un punto
    codice:
    <input type="text" name="NomeText" onkeyup="this.value=this.value.replace(/,/g,'.').replace(/\./,'_').replace(/[^\d_]/g,'').replace(/_/,'.');">

  3. #3
    Ciao Willybit, una domanda, con il tuo codice se copio ed incollo una virgola funziona ugualmente il tuo controllo??

    Thanksss

  4. #4
    Il problema è che se incollo lettere o ',' lui me le accetta, e pure se per primo valore inserisco un '.'.
    E' possibile escludere queste due eventualità con il tuo codice?

    Grazie!!!

  5. #5
    [b] penso che questo dovrebbe bastare, altrimenti occorre usare qualcosa di + sofisticato...intatno provalo!! [b/]

    codice:
    <input type=text onkeyup="this.value=this.value.replace('.',',')">

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    se si copia e incolla col mouse basta fare il controllo anche sull'onchange
    il punto iniziale io lo accetterei però se non ti garba
    codice:
    <input type="text" name="NomeText" onkeyup="this.value=this.value.replace(/,/g,'.').replace(/\./,'_').replace(/[^\d_]/g,'').replace(/_/,'.').replace(/^\./,'');" onchange="this.value=this.value.replace(/,/g,'.').replace(/\./,'_').replace(/[^\d_]/g,'').replace(/_/,'.').replace(/^\./,'').replace(/\.$/,'');">
    Visti tutti quei replace sarebbe meglio fare una fuinzione e usare quella

  7. #7
    scusate ma ho sbagliato a postare il codice, quello corretto è questo!!

    <input onkeyup="this.value=this.value.replace('.',',').re place(/[^\d,]/g,'')">

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Web01 voleva fare il contrario cioè sostituire la virgola col punto... apparte questo...
    col tuo codice si può scrivere
    ,,,,,,,,,,,,,,,,,,,,435453453,,,,,,,,,,,34534534,, ,,,,345,345,345,34
    che non è un numero

  9. #9
    Grazie a tutti!!!
    Il codice postato da "willybit" funziona alla perfezione ed è quello che cercavo.

    Grazie!!

  10. #10
    Ho provato anhio, ed in effetti funziona molto bene quella di Willybit, c'è solo un piccolo problema sul carattere _, copiando ed incollando una stringa ad esempio : <input type="text" name="NomeText" onkeyup="this.value=this.value.replace(/,/g,'.').replace(/\./,'_').replace(/[^\d_]/g,'').replace(/_/,'.').replace(/^\./,'');" onchange="this.value=this.value.replace(/,/g,'.').replace(/\./,'_').replace(/[^\d_]/g,'').replace(/_/,'.').replace(/^\./,'').replace(/\.$/,'');">!!

    Ottemio lavoro!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.