2012-07-23 6 views
5

Chciałbym pozwolić użytkownikowi wprowadzić 1 lub dwie cyfry i wyświetlić cyfry poprzedzone znakiem procentu. Jeśli nie zostanie wprowadzona żadna cyfra, powinna być pusta. Załączone prawie działa, ale nie pokazuje znaku procentu, jeśli wprowadzono tylko jedną cyfrę. Czy ktoś może pomóc? DziękiWejście maski ze znakiem procentowym

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> 

Odpowiedz

9

Spróbuj tego - 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

dzięki dla łatwego do wdrożenia rozwiązania. –

+0

@RAJK serdecznie zapraszamy :) –

+1

To jest bardzo nieefektywne. Pakujesz (i ponownie oceniasz) '' '$ (this)' '' * cztery * oddzielne razy, a następnie trzykrotnie wykonując funkcję '' 'val()' ''. Powinieneś przechowywać wyniki tych zmiennych tymczasowych. W JavaScript zmienne są tanie, wykonanie jest kosztowne. –

Powiązane problemy