2012-07-23 12 views
5

Vorrei consentire all'utente di inserire 1 o 2 cifre numeriche e visualizzare le cifre seguite da un segno di percentuale. Se non vengono inserite cifre, dovrebbe essere vuoto. L'allegato funziona quasi, ma non mostra il segno di percentuale se viene inserita una sola cifra. Qualcuno può aiutare? GrazieImmissione maschera con segno di percentuale

http://jsfiddle.net/dm8Mb/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> 
<title>Mask</title> 

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="http://cloud.github.com/downloads/digitalBush/jquery.maskedinput/jquery.maskedinput-1.3.js" type="text/javascript"></script> 

<script> 
$(function(){$(".percent").mask("9?9%");}); 
</script> 

</head> 

<body> 
<input type="text" name="percent" class="percent" value="" /> 
</body> 
</html> 

risposta

9

Prova questo - http://jsfiddle.net/dm8Mb/12/

$(function(){ 
    $(".percent").mask("9?9%"); 

    $(".percent").on("blur", function() { 
     var value = $(this).val().length == 1 ? $(this).val() + '%' : $(this).val(); 
     $(this).val(value); 
    }) 
}); 
+0

grazie per facile da implementare soluzione. –

+0

@RAJK siete i benvenuti :) –

+1

Questo è molto inefficiente. State avvolgendo (e rivalutando) '' '$ (this)' '* * quattro * volte separate, quindi eseguendo la funzione' '' val() '' 'tre volte. Dovresti memorizzare i risultati di questi in variabili temporanee. In JavaScript, le variabili sono economiche, l'esecuzione è costosa. –

Problemi correlati