これは、私が書いたすばやく簡単な jQuery プラグインです。必要なことは$("#element_id").jqCounter();
、入力またはテキストエリアに文字カウンターを与えることだけです。貼り付け、変更、および私が考えることができるその他すべてに応答します。
それを機能させるには、maxlength 属性を設定する必要があります。<input maxlength=45 />
また<textarea maxlength=45></textarea>
<script>
(function($) {
$.fn.extend({
jqCounter : function(givenOptions) {
return this.each(function() {
var $this = $(this),
options = $.extend({
divider: "/" // The diveder character between the count and max
}, givenOptions);
// 0 chars or max count not set or already setup
if($this.attr("maxlength") <= 0 || $this.hasClass("jqCounter")) return;
// Add the counter text after the element
var span= $("<span style=\"font-size:10px;\">"+$this.val().length+options.divider+$this.attr("maxlength")+"</span>")
.insertAfter($this);
// Add a class
$this.addClass("jqCounter")
// React to keypresses, changes, paste, etc. and change the counter
.on('focus blur propertychange change input paste keydown keyup keypress', function(){
setTimeout(function(){
var maxChars = $this.attr("maxlength"),
txtLength = $this.val().length;
span.text( txtLength + options.divider + maxChars );
},
1);
});
});
}
});
})(jQuery);
$(document).ready(function()
{
// All text areas will have a content counter
$("textarea").jqCounter();
});
</script>