Textareaは、テキストエリアとも呼ばれるテキストフィールドと呼ばれます。これは、スクロールバーを使用したマルチラインのテキスト入力コントロールであり、Webページの送信フォームでよく使用されます。シングルラインのテキストボックステキストコントロールとは異なり、MaxLengthプロパティを介して単語の数を制限することはできません。この目的のために、プリセット要件を満たすためにそれらを制限するために他の方法を求めなければなりません。
通常の練習は、#script言語を使用して、テキストレアテキストフィールドに単語入力制限を実装することです。これはシンプルで実用的です。 ID TXTA1を備えたTextAreaテキストエリアがあるとしたら、キーボードの入力数を10文字(漢字またはその他の小さなコーナー文字)に制限できるとします。
<スクリプト言語= "#" type = "text/ecmascript"> window.onload = function(){document.getElementById( 'txta1')。onkeydown = function(){if(this.value.length> = 10)event.returnValue = fals; }} </script>その原則は、キーダウンイベントを監視して、指定されたID番号のテキスト領域を監視することです。キーボードの入力のみを制限できると想像できます。ユーザーがマウスを右クリックしてクリップボード内のテキストを貼り付けると、単語の数を制御できません。
キーボード入力により、上記のテキスト領域に10ワードしか入力できません。しかし、私たちの目標は達成されていません!何らかのテキストをさりげなくコピーし、右のマウスボタンで貼り付けて、何が起こっているのかを確認してください。
上記のような他のJSスクリプトをインターネット上で見つけることができます。どんなに優れていても、彼らの原則は同じです。キーダウン、キーアップ、キープレスなどのキーボードキーを操作してテキスト領域の入力を監視することは、右クリックが貼り付けられないようにすることはできません。このため、Textareaの単語数を実際に制限する必要がある場合は、Webページに別のロックを追加する必要があります。右クリックを無効にします。実際、Onpropertychangeプロパティを使用する簡単な方法があります。
Onpropertychangeを使用して、所定の要素の価値を判断できます。要素の値が変更されると、判断イベントがトリガーされます。監視対象の要素の値を気にかけ、入力のソースを回避するため、単語の数を比較的理想的な方法で制限する目的を達成できます。 JSカテゴリに属し、ネストされたフォームボックスエリアの代表者で使用できます。以下は、コードと効果のスタイルです。上記のような入力をテストできます。あなたはそれが本当にその目的を達成することがわかります:あなたが入力する方法に関係なく、それは100文字(漢字または他の小さなソリューション記号)しか入力できません:
コード:
<textarea onpropertychange = "if(value.length> 100)value = value.substr(0,100)" cols = "60" name = "txta" rows = "8"> </textarea>
もちろん、より安全になるためには、フォームデータを処理するバックグラウンドスクリプトプログラムも、提出されたデータをもう一度確認する必要があります。単語の数がプリセット数を超える場合、単語の数を真に制限する目的を達成するために、それに応じて処理されます。 (以上)
入力単語の数を制限するためにTextareaを実装する別の方法(中国語を含む、10個のみを入力でき、すべてのASCIIコードを入力できます)
<script> function check(){var regc = /[^ -〜]+ /g; var rege = // d+/g; var str = t1.value; if(regc.test(str)){t1.value = t1.value.substr(0,10); } if(rege.test(str)){t1.value = t1.value.substr(0,20); }} </script> <textarea maxlength = "10" id = "t1" onkeyup = "check();"> </textarea>別の方法があります:
function textcounter(field、maxlimit){if(field.value.length> maxlimit){field.value = field.value.substring(0、maxlimit); } else {document.upbook.remlen.value = maxlimit -field.value.length; }}<textarea name = words cols = 19 rows = 5 class = input1 onpropertychange = "textcounter(upbook.words、50)"> textarea>残りの単語数:<input name = remlen type = "remlen" stiled = "background-color:#d4d0c8; border:0;
関数limittextarea(field){maxlimit = 200; if(field.value.length> maxlimit)field.value = field.value.substring(0、maxlimit);}<Textarea cols = 50 rows = 10 name = "comment" id = "commentarea" onkeydown = "limittextarea(this)" onkeyup = "limittextarea(this)" onkeypress = "limittextarea(this)"> </textarea>
title = "Textarea幅は300文字未満でなければなりません。」 Textareaに最大バイト数を入力するように求められます。
例えば:
<Textarea cols = 50 rows = 10 name = "comment" id = "commentarea" onkeydown = "limittextarea(this)" onkeyup = "limittextarea(this)" onkeypress = "limittextarea(this)"> </textarea>