TextArea の長さを 2 文字に制限する必要があります。私はたくさんの答えを見つけました。これらの回答を読んで、次のコードに到達しました。「keydown」と「keyup」のイベント ハンドラがあります。
- これで十分で正しいと思いますか?
- すべての主要なブラウザで動作しますか?
http://jsfiddle.net/Lijo/VAYze/1/
- 注: エラー メッセージを表示する必要はありません。したがって、正規表現の検証は私にとって良い選択肢ではありません。
- 注:私は既存のコードに基づいた回答を探しています - まったく新しい回答ではありません
- 注: キー コードは、http://www.asquare.net/javascript/tests/KeyCode.html および http://www.asquare.net/javascript/tests/KeyCode.html から参照されます。
アップデート
テキストをテキスト領域に処理するためdragged
の jQuery ソリューションが見つかりません。regular expression validator
with EnableClientScript
="false"にする予定です。サーバー側でのみ検証されます。これは、既存の jQuery 操作をバイパスしたものを処理するためです。 複数行のテキスト ボックスの ASP 正規表現バリデーター
jQuery
$(document).ready(function () {
var maxLength = 2;
$('.multiline').keydown(function (e) {
var existingText = $(this).val();
var existingLength = existingText.length;
if (existingLength >= maxLength)
{
if (maxLength > 0)
{
if (!checkSpecialKeys(e))
{
$(this).val(existingText.substring(0, maxLength));
$(this).css('color','red');
//Newly entered character not rendered since false is returned
e.preventDefault();
}
}
}
});
//To trim the text if a paste happens
$('.multiline').keyup(function (e) {
var newText = $(this).val();
var newLength = newText.length;
if (newLength > maxLength) {
if (maxLength > 0) {
$(this).val(newText.substring(0, maxLength));
$(this).css('color','red');
}
}
});
}
);
function checkSpecialKeys(e)
{
if (e.keyCode >= 48 && e.keyCode <= 90)
{
return false;
}
if (e.keyCode >= 96 && e.keyCode <= 111)
{
return false;
}
else
{
return true;
}
}