文字数が特定の値に達したときに、ユーザーがテキストエリアにそれ以上入力できないようにしています。
私のコードは、Chrome、Safari、および Firefox で正常に動作します。
しかし、preventDefaultメソッドは、 IEのどのバージョンでも機能しません。
これについてSOで多くの同様のトピックを見つけ、最も一般的な提案を含めました:
- preventDefault が存在することを確認するためのチェックを実行します。存在しない場合は、IEの returnValue=falseを使用します。問題はreturnValue=falseも機能しないことです。
助言がありますか?
// Attach textarea char counter to all textarea's with class of 'textarea-char-count'
$('.textarea-char-count').live("keyup", function(event) {
MYAPP.COMMON.textareaCounter(this, event);
});
// Attach textarea char counter to element
MYAPP.COMMON.textareaCounter = function(element, evt) {
//Get char limit
var limit = $(element).attr("maxlength");
// get current character count
var current = $(element).val().length;
// if current character count is greater than or equal to the character limit
if(current >= limit) {
// prevent further characters from being entered apart from the
// Delete and Backspace keys
if(evt.which != 0 && evt.which != 8)
{
if (evt.preventDefault) {
evt.preventDefault();
}
else {
evt.returnValue = false;
}
}
}
// add the remaining character count to our span
$(element).parent().next().show().text( current + " / " + limit);
}