2012-07-23 84 views
5

我想讓用戶輸入1或2個數字,並顯示數字後面跟百分號。如果沒有輸入數字,它應該是空白的。附件幾乎可以工作,但如果只輸入一位數字,則不會顯示百分號。誰能幫忙?由於用百分號輸入掩碼

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> 

回答

9

試試這個 - 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

感謝容易實現的解決方案。 – 2013-01-09 12:09:18

+0

@RAJK歡迎您:) – 2013-01-09 13:01:05

+1

這是非常低效的。你要包裝(並重新評估)''($)這個分開的四次,然後執行三次val()函數。您應該將這些結果存儲在臨時變量中。在JavaScript中,變量很便宜,執行起來很昂貴。 – 2014-09-27 12:08:41