以下は、解決しようとしている問題のサンプルスナップショットです。
- textareaの4行(これをtextarea自体にrows = "4"で制限します)
- 1、2、3行目は24文字に制限されています
- 4行目は無制限の文字数になります
テキストエリアのスナップショット:
123456789012345678901234
123456789012345678902333
232323232323232323323232
23232323232323232323236464536543654643
JavaScript:
$('#your-input').keypress(function() {
var text = $(this).val();
var arr = text.split("\n");
if(arr.length > 5) {
alert("You've exceeded the 4 line limit!");
event.preventDefault(); // prevent characters from appearing
} else {
for(var i = 0; i < arr.length; i++) {
if(arr[i].length > 24 && i < 3) {
alert("Length exceeded in line 1, 2, or 3!");
event.preventDefault(); // prevent characters from appearing
}
}
}
console.log(arr.length + " : " + JSON.stringify(arr));
});
これは、keypressイベントを使用して実行できます。keypressイベントが発生したら、テキストボックスの現在の値を取得し、\n
改行文字を区切り文字として使用して値を配列に分割します。
- 配列の長さは、行数を示します。これらの行を超えた場合、アラートが発生します。
- 配列内の個々の文字列の長さは、各行の長さを表します。forループを使用して、最初の3行をチェックします。24の長さを超えると、アラートが発生します。
- 最後の行の長さは関係ないため、ループの最後の反復は無視します。
これは完全なソリューションとなるようには設計されていませんが、これにより確実に開始でき、ニーズに合わせて変更できるものが提供されます。幸運を!