イベントから、input[type=text]
またはtextarea
の所有者が適用後に減少または増加するかどうかを確認する方法はありますか?Textarea maxlength in IE
背景:Internet Explorer 8と9のユーザーを主要コンシューマとしてサポートするHTML5サイト(<!DOCTYPE html>
)があります。いくつかのページでは、<textarea>
の要素にmaxlength="100"
の属性があります。 IEはmaxlength
属性を認識せず、textarea
に100文字以上を入力できます。
IEのtextarea
の文字の長さを制限するshimは、input[type=text]
要素と同じキーボード動作では見たことがありません。
そのため、私は1つ書きたいと思っています。
既存の実装では、このような何かを見て:
$('textarea[maxlength]').on('keydown keyup blur', function(e) {
var $this = $(this),
maxlen = $this.attr('maxlength'),
val = $this.val();
if (val.length > maxlen) {
$this.val(val.substr(0, maxlen));
}
});
をabove implementationの問題点は、11個の文字を入力するか貼り付けることができるということであり、値は値が変更された後まで、MAXLENGTHにトリミングされていません。私はinput[type=text,maxlength]
の振る舞いとよりよく一致するように、の変更を防ぐために、の値を変更します。
重複したhttp://stackoverflow.com/questions/1125482/how-to-impose-maxlength-on-textarea-in-html-using-javascript? – Interrobang
テキストの長さは、右クリックメニューから貼り付けることによっても増やすことができます。私はその出来事をキャッチする方法を知らない。 – Brilliand
IEに「貼り付け」イベントがあります。 – user979672