2012-07-23 18 views
5

ユーザーが1桁または2桁の数字を入力し、数字の後にパーセント記号を表示することを許可します。数字を入力しない場合は、空白にしてください。添付はほぼ機能しますが、1桁しか入力されていない場合はパーセント記号は表示されません。誰も助けることができますか?おかげパーセント記号のマスク入力

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

感謝を。 –

+0

@RAJKあなたは大歓迎です:) –

+1

これは非常に非効率的です。あなたは '' $(this) "' * * four * separate timesをラップ(そして再評価)してから '' 'val()' '関数を3回実行します。これらの結果を一時変数に格納する必要があります。 JavaScriptでは、変数は安く、実行は高価です。 –

関連する問題