
No.2ベストアンサー
- 回答日時:
Webコンテンツを作成しています。
ユーザの入力をJavaScriptによって細かくチェックしたいという気持ちは分かりますが、あんまりしつこくやるとユーザに嫌われます。
各入力フィールドごとに制限事項を小さい字で補足しておき、送信ボタン押下時のみチェックしてalertする程度が1番いいようです。
もう少しやるにしても、onBlurのみのチェックにしておいた方がいいですよ。
JavaScriptの練習がしたいというのであれば、387さんの回答を試してみるとよいと思います。

No.1
- 回答日時:
以下のようにすると良いのではないでしょうか?
※ 動作確認しやすいように 5文字でチェックしています。
ポイントは、テキストエリアに入力する手段として、キー入力と「貼り付け」の
2種類がある事です。
それと、キー入力時には事前にチェックができますが、「貼り付け」時には
テキストエリアがフォーカスを失う(別の要素に移動する)時しかチェック
できない為、データが既に文字数制限をオーバーしている可能性がある点です。
その為、最後に文字数制限内だったデータを保持する処理と制限オーバーした
時に保持しているデータに復元する処理を行っています。
※ データの一部を書き換える(文字列を選択してからキー入力 or「貼り付け」)
場合の処理も必要ですが、今回は割愛しています。
●スクリプト
var strTextarea = "" ; // テキストエリアデータの保存用
function funcCheckOnChange( oTextarea )
{
if ( oTextarea.value.length > 5 )
{
alert( "文字数は 5文字迄です。" ) ;
oTextarea.value = strTextarea ; // データを復元
}
else
{
strTextarea = oTextarea.value ; // データを保存
}
}
function funcCheckOnKeypress( oTextarea )
{
if ( oTextarea.value.length >= 5 )
{
alert( "文字数は 5文字迄です。" ) ;
if ( oTextarea.value.length > 5 )
{
oTextarea.value = strTextarea ; // データを復元
}
event.returnValue = false ; // キー入力をキャンセル
}
}
●テキストエリア
<TEXTAREA
onKeypress="funcCheckOnKeypress( this ); strTextarea = this.value"
onChange="funcCheckOnChange( this )">
</TEXTAREA>
※ IEでのみ動作確認しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JQueryで2つのテキストフィー...
-
<input>の選択肢をプルダウンメ...
-
Selectボックスの幅を自動で広...
-
javaScriptの変数をJavaの変数...
-
ボタン無しでフォーム内容送信
-
<JavaScript>tableタグを入力不...
-
同じ名前のセレクトがある場合...
-
doPostBack 関数について
-
tableの任意行にfocusをあてる
-
二次元配列に数字をランダムに...
-
JavaScriptのfileオブジェクト...
-
特定<table>内の<td>の色を変える
-
削除ボタンの確認ダイアログを...
-
javascriptで<table>背景色の取得
-
C#(csファイル)とjavascriptと...
-
RegularExpressionValidatorの...
-
name = cats[1] という input ...
-
1つのform内に2つのsubmitボタ...
-
プルダウンで選択された値を別...
-
jQueryで合計を出したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォームの値が0だったら空白...
-
onClickとsubmitの処理順序
-
JSPとJavaScriptの連携について...
-
JavaScriptのアレンジがしたいです
-
条件により、リンク先に画面遷...
-
テキストボックス入力を半角英...
-
WebサイトにOutlookマクロ(V...
-
Javaについて教えてください。 ...
-
javascriptで、イベントが発生...
-
dijit.form.ComboBoxについて
-
onChange()メソッド
-
手書き入力モードを利用して、...
-
PDFフォームで条件つき金額を表...
-
JavaScript のプログラム質問で...
-
2重でメール入力チェックをした...
-
テキストボックスを無効にする...
-
数字の1文字目を消したい
-
入力モード 自動 切り替え
-
日付入力欄の表示形式を自動的...
-
Webブラウザにてページのりロー...
おすすめ情報