Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    inserimento dato in percentuale

    salve a tutti ho un campo input
    in percentuale es. 0,00%

    nel momento in cui l'utente inserisce la percentuale es. 8,60%
    vorrei che con l'evento ONBLUR dell'input il campo venisse aggiornato

    cioè se l'utente non mette la percentuale e immette 8,6, vorrei che con l'evento ONBLUR il campo venisse formattato nel segente modo: 8,60% come si può fare in Javascript ???
    mi aiutate?
    grazie mille

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Funzione e test "didattici"
    codice:
    <script>
    function perc(s) {
    	p0 = (s+",0").split(",");
    	i = parseInt("0"+p0[0],10);
    	p1 = (p0[1]+"%").split("%");
    	d = (p1[0]+"00").substr(0,2);
    	r = ""+i+","+d+"%";
    	return r;
    }
    document.write(perc("")+"
    ") 
    document.write(perc("0")+"
    ") 
    document.write(perc("1")+"
    ") 
    document.write(perc("22")+"
    ") 
    document.write(perc("0,0")+"
    ") 
    document.write(perc("0,1")+"
    ") 
    document.write(perc("1,0")+"
    ") 
    document.write(perc("1,01")+"
    ") 
    document.write(perc("1,1%")+"
    ") 
    document.write(perc("1,001")+"
    ") 
    document.write(perc("91,12")+"
    ") 
    document.write(perc("11.22")+"
    ") 
    </script>
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    GRAZIE MILLEEEE

  4. #4
    Mah, prova un po' anche questa:

    codice:
    <input type="text" id="boh" value="" onblur="foo(this)" />
    
    <script type="text/javascript">
    function foo(obj){
    if(obj.value){obj.value=obj.value.replace(/(^[0-9]+)(,[1-9]){1}(%)?$/, '$1$20$3');};
    }
    </script>

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da TrueLies
    Mah, prova un po' anche questa:

    codice:
    <input type="text" id="boh" value="" onblur="foo(this)" />
    
    <script type="text/javascript">
    function foo(obj){
    if(obj.value){obj.value=obj.value.replace(/(^[0-9]+)(,[1-9]){1}(%)?$/, '$1$20$3');};
    }
    </script>
    Ma l'hai provato?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    sì beh certo - magari non lo ho testato per un' ora per questo dicevo prova - magari un test più estensivo lo fa lui.
    Perchè, cosa hai riscontrato di particolarmente insolito?

  7. #7
    Se ti riferisci al fatto che non aggiungeva il segno %, non mi era chiaro se tale segno fosse davvero indispensabile per l'utente (mi pareva di capire fosse lo zero finale più critico per lui), ad ogni modo si riadatta facilmente:

    codice:
    <input type="text" id="boh" value="" onblur="foo(this)" />
    
    <script type="text/javascript">
    function foo(obj){
    if(obj.value){
    	obj.value=obj.value.replace(/(^[0-9]+)(,[0-9]){1}(%)?$/, '$1$20$3');
    	obj.value=obj.value.replace(/([^%]+)$/, '$1%');
    	};
    }
    </script>
    a me pare funzionare benissimo, ma se così non fosse ditemi dove sarebbe il problema, sono cointeressato poichè siamo tutti qui o per imparare o per affinare le nostre capacità (o almeno per me è così)
    ciau

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.