Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di indre
    Registrato dal
    Jan 2002
    Messaggi
    2,735

    Formattazione automatica in un input type text...

    Ciao a tutti!
    Ho questo problema: ho un campo di testo (size="14") che deve contenere un codice numerico. Un codice d'esempio è questo: 654062 01 0200... Posso fare in modo che l'utente inserisca 6 numeri, che il settimo carattere in automatico diventi uno spazio, che ne inserisca altri 2, di nuovo spazio ed, infine, possa inserire gli ultimi 4? Cioè: posso già formattare il codice inserito con gli spazi nel punto esatto?
    Vi ringrazio anticipatamente!

    Ciao!
    When I was young I used to pray for a bike. Then I realized that God doesn't work that way. So I stole a bike and prayed for forgiveness.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Tutto si puo` fare, ma potresti dare qualche problema all'utente se inserisce lo spazio anche lui.

    Esempio:
    <input onkeyup="formatta(this);" ...>

    dove la funzione formatta potrebbe essere del tipo:
    codice:
    function formatta(cc) {
      var valu = cc.value;
      if(valu.match(/^\d{6}$/) {
        cc.value = valu + " ";
        return true;
      } else if (valu.match(/^\d{6} \d{2}$/) {
        cc.value = valu + " ";
        return true;
      } else if (valu.match(/^\d{6} \d{2} \d{4}/) {
        // passa al campo successivo
        return true;
      }
      return true; // qui arriva in tutti gli altri casi
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di indre
    Registrato dal
    Jan 2002
    Messaggi
    2,735

    Re:

    Grazie Mich_!
    Funziona perfettamente, anche se mancavano le chiusure delle parentesi tonde nelle tre condizioni if

    function formatta(cc) {
    var valu = cc.value;
    if(valu.match(/^\d{6}$/)) {
    cc.value = valu + " ";
    return true;
    } else if (valu.match(/^\d{6} \d{2}$/)) {
    cc.value = valu + " ";
    return true;
    } else if (valu.match(/^\d{6} \d{2} \d{4}/)) {
    // passa al campo successivo
    return true;
    }
    return true; // qui arriva in tutti gli altri casi
    }

    GRAZIE 1000 ancora!
    When I was young I used to pray for a bike. Then I realized that God doesn't work that way. So I stole a bike and prayed for forgiveness.

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.