HTMLに入力できる最大文字数を制限する方法<textarea>
?私は、クロスブラウザソリューションを探しています。HTMLの最大長<textarea>
答えて
3210タグはMAXLENGTH
は、少なくともではない、ほとんどの標準的なブラウザで、 INPUT
タグがないという方法属性はありません。 が3210タグにを入力できる文字数を制限するための非常にシンプルで効果的な方法は次のとおりです。
<textarea onKeyPress="return (this.value.length < 50);"></textarea>
注:onKeyPress
、いずれかのボタン、いずれかのボタンを押しを防ぐために起こっていますバックスペースキーはです。
これは、新しい文字が必要な最大長(この例では50個)に追加される前にフィールドの長さが と比較され、もう1つ空きがある場合はtrueを返し、 false
もしそうでなければ。ほとんどのイベントからfalseを返すと、デフォルトのアクションはキャンセルされます。 したがって、現在の長さがすでに50以上の場合、ハンドラはfalseを返し、 KeyPress
アクションがキャンセルされ、文字は追加されません。
3210、 に貼付する可能性があり、このチェックを回避してKeyPress
イベントを発生させません。 Internet Explorer 5以降にはonPaste
イベントが含まれており、そのハンドラには チェックを含めることができます。ただし、合計数が になるかどうかを知るために、クリップボードで待っている文字の数は、 の文字数を考慮に入れる必要があります。幸運なことに、IEにはウィンドウオブジェクトからのクリップボード オブジェクトも含まれています。したがって1:
<textarea onKeyPress="return (this.value.length < 50);"
onPaste="return ((this.value.length +
window.clipboardData.getData('Text').length) < 50);"></textarea>
は再び、onPaste
イベント及びclipboardData
オブジェクトのみ5+ IEです。クロスブラウザソリューションでは、長さをチェックして処理するには、OnChange
またはOnBlur
ハンドラを使用するだけで済みます(値をサイレントに切り捨て、ユーザに通知するなど)。残念ながら、ユーザーがフィールドを離れようとしたときにのみ、このエラーは発生しません。これはあまりフレンドリーではありません。
また、あなたがあなたのページに含めることができ、完成したスクリプトを含め、ここでは別の方法があります:
http://cf-bill.blogspot.com/2005/05/textarea-maxlength-revisited.html
HTML5は今maxlength
attribute on <textarea>
することができます。
IE < = 9とiOS Safari 8.4以外のすべてのブラウザでサポートされています。 support table on caniuse.comを参照してください。何の文字を削除することはできない - 文字の制限がヒットしたら、上に書いたonKeyPressイベント機能は、テキストエリアに入力されてから任意のテキストを防ぐことができますことを
@erdomesterそれはサポートされているブラウザで動作しています。あなたは私が提供したw3cリンクでテストすることができます。 – indusBull
maxlength = "500px"を使っても試してみました。しかし、あなたが提供したリンクは、私がそのコメントを投稿したときに非アクティブであったので、表示されたページは今のものよりも他の属性を表示していました。 – erdomester
そのリンクはW3Cにはないので、間違った情報を出すことで知られているW3Schoolsです。 – Toby
$(function(){
$("#id").keypress(function() {
var maxlen = 100;
if ($(this).val().length > maxlen) {
return false;
}
})
});
- 1. 長いテキストフィールドの最大長
- 2. SteamID64の最小長と最大長
- 3. オラクルナンバーフォーマットモデル最大長
- 4. JAVA_TOOL_OPTIONS最大長
- 5. Android:URLの最大長
- 6. UITextViewの最大長
- 7. スカラキューの最大長
- 8. openIDの最大長
- 9. SAS長さが最大長
- 10. Nativescript TextField最大長
- 11. URLの最大長(C#の)
- 12. [NSXMLNode stringValue]の最大長
- 13. URLフラグメント(ハッシュ)の最大長
- 14. node.jsの最大リクエスト長
- 15. MongoDB。フィールド名の最大長
- 16. UUIDの最大文字長
- 17. 最大の長方形
- 18. SQL CEの最大長
- 19. 最大長のDjango CharField
- 20. Ajax URLの最大長を
- 21. ** argvパラメータの最大長
- 22. Windowsユーザー名の最大長
- 23. 最大MySQLユーザーパスワードの長さ
- 24. ベクトルの最大長がR
- 25. Alexa skill SSMLの最大長
- 26. Grails JSONの最大長
- 27. sendtoの最大バッファ長は?
- 28. VARCHARのデフォルトと最大長
- 29. シードデータベースの設定最大長
- 30. Elasticsearchフィールド名の最大長
注意。 より堅牢なスニペットを使用すると、最大制限を超えてからバックスペースを使用して文字を削除することができます。 – shek
おそらくそれは私と私の悪い算数ですが、私は、textareasに新しい行を使用すると、IEとFFはChromeと 'maxlength'の動作が異なるという印象を持っています。あなたのテキストに改行が含まれている場合、 '\ r \ n'と' \ n'の問題が関係しています...確かに、 'maxlength'は私の経験からWindows上でcross-browser-ishを動作させていないようです。 ..しかし、ここで何も新しい、ちょうど同じ古いバグのHTML/JS stuff ... – user2173353