HTMLで作成されたフォームでテキストエリアフィールドを使用しており、処理はphpによって行われます。ユーザーがテキストエリアに入力できる文字数を制限したい。textarea フィールドが mysql データベースに格納され、フィールドの varchar 値に従ってユーザー データを制限する必要があるため、これを行う方法はありますか。
何か助けはありますか?
これを制限するには、HTML のmaxlength
ように textarea タグに属性を設定<textarea maxlength="120"></textarea>
し、さらに PHP で入力文字列を関数ごとに「カット」しsubstr()
ます。
s.webbanditで述べたように、を使用できますがmaxlength
、これは HTML5 で導入された新機能であり、W3 Schoolsのに関する記事<textarea>
であるため、「防弾」ソリューションには Javascript が必要であることに注意してください。そのため、Internet Explorer ではバージョン 10 までサポートされておらず、Opera ではまったくサポートされていませmaxlength
ん。
Javascript を使用して支援する 1 つのアプローチを次に示します。
<script language="javascript" type="text/javascript">
function charLimit(limitField, limitCount, limitNum) {
if (limitField.value.length > limitNum) {
limitField.value = limitField.value.substring(0, limitNum);
} else {
limitCount.value = limitNum - limitField.value.length;
}
}
</script>
その後、次のように使用できます(元のソース):
<textarea name="limitedtextarea" onKeyDown="charLimit(this.form.limitedtextarea,this.form.countdown,100);">
</textarea>
これでうまくいくはずです。
これは、JavaScript を介してテキスト領域の長さを制限する非常に簡単な方法です。
テキストエリアフィールド:
<input class='textField' type='text' NAME='note1' value='' onkeyup='charLimit(this, 40);'>
JavaScript 関数:
function charLimit(limitField, limitNum) {
if (limitField.value.length > limitNum) {
limitField.value = limitField.value.substring(0, limitNum);}
}
ユーザーが 40 文字を超えて入力すると、それらが削除されます。
テキストエリア内のテキストを制限するためにさまざまな方法を試しましたが、(クライアント側で) 見つけた最良の方法は、jQuery.Maxlength.js プラグインを使用することです。シンプルなクイックでそれらすべてをカバーします!
ステップ 1. Maxlength プラグイン スクリプトを含める
<script language="javascript" src="jquery.maxlength.js"></script>
ステップ 2. maxlength 属性を
<textarea maxlength="35"
rows="5" cols="30" name="address"></textarea>
ステップ 3. プラグインの初期化
<script type="text/javascript">
$(document).ready(function($) {
//Set maxlength of all the textarea (call plugin)
$().maxlength();
})
</script>