JavaScript が正しく動作しない理由がわかりません。その j Query を使用し、すべてのテキスト領域タグを選択し、各テキスト領域に対して入力された文字数をカウントし、最大長に達した後はユーザーがそれ以上入力できないようにし、文字カウンターも表示することを想定しています各テキストエリアボックスの下。その機能は、残りの文字のみを表示することですが、キーを押すたびに減少せず、最大長に達しても停止しません。また、すべてのテキスト領域を選択するわけではなく、最初に見つかったものだけを選択します。
これが私のTextAreaCounter.jsです
$(document).ready(function){
var $texts = $('textarea[maxlength]');
$texts.each(function){
$var $this = $(this),
max = $(this).attr('maxlength'),
textId = $(this)attr.('id'),
$parent = $this.parent(),
countId = textId+'-count';
$div = $('<div>Characters Remaining: </div>').addClass('count-down').insertAfter($this);
$input = $('<input></input>').attr({
type:"text",
readOnly: "readOnly",
value: max,
id: countId
}).css({
width: "25px"
marginTop: "5px"
marginBottom: "10px"
}).addClass('readOnly').appendTo($div);
$this.on({
keyup: function(){
val = $this.val(),
countVal = $('#'+countId).val(),
if(val.length > max){
$this.val(val.substr(0,max));
alert('Max length exceeded: ' +max);
return false;
}else{
$('#'+countId).val(max-val.length);
}
},
blur: function(){
val=$this.val();
if(val.length > max){
$this.val(val.substr(0,max));
alert('Max length exceeded: ' +max);
return false;
}else{
$('#'+countId).val(max-val.length);
}
}
});
});
});
ここのコードには表示されていないアラートをいくつか追加すると、keyup イベントで this.on セクションに到達していないことが示されました。この外部 js ファイルを、ページが作成され、テキスト領域が含まれる jsp ファイルに含めました。また、id および maxlength 属性を textarea 要素に追加します。どんな助けでもありがとう。