いつもお世話になっております。
現在、JavaScriput勉強中の初心者です。
テキストエリアにJavaScriptでmaxlength機能を付け制限字数を超えると警告ダイアログを出す
ようにしたのですがコピペで制限字数を2文字以上超えるとBackSpaceで1文字消すたびに
警告ダイアログが出るというバグが起きてしまいます。
そこで警告ダイアログのOKボタンを押すと制限字数以上の文字は消すプログラムが組みたい
のですがどうすればよいですか?
あと残り入力可能文字カウンタをsetIntervalを使ったものに変更したら警告ダイアログすら表示
されなくなってしまいました・・・よろしくお願いします。
●変更前
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>文字のカウント</title>
<script type="text/javascript"><!--
function ShowLength( str ) {
document.getElementById("inputlength").innerHTML = 20 - str.length;
}
function check() {
txt = document.myFORM.myTEXT.value;
n = txt.length;
if (n > 20) alert("20文字以内にしてください");
}
// --></script>
</head>
<body>
<form name="myFORM">
<textarea cols="46" rows="5" name="myTEXT" onkeyup="ShowLength(value); check();" onmouseout="ShowLength(value); check();"></textarea><br />
あと<span id="inputlength">20</span>文字入力できます<br />
</form>
</body>
●変更後
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>文字のカウント</title>
<script type="text/javascript"><!--
(function(){
var intervalId = setInterval(function(){
var n = 20 - document.getElementsByName("myTEXT")[0].value.length;
if(n < 0) n = 0;
document.getElementById("inputlength").innerHTML = n;
}, 100);
})();
function check() {
txt = document.myFORM.myTEXT.value;
i = txt.length;
if (i > 20) alert("20文字以内にしてください");
}
// --></script>
</head>
<body>
<form name="myFORM">
<textarea cols="46" rows="5" name="myTEXT" onkeyup="ShowLength(value); check();" onmouseout="ShowLength(value); check();"></textarea><br />
あと<span id="inputlength">20</span>文字入力できます<br />
</form>
</body>
No.1ベストアンサー
- 回答日時:
そのまんま、こぴぺして、ぜんかくくうはくを、はんかくにしてね
すくりぷとは、<head>のなかだけとはかぎらない
<!DOCTYPE html>
<title></title>
<body>
<form action="#">
<p>HTML5 なら、textarea にも、 maxlength があるよ! というか…</p>
<p>
<input type="text" id="title1" name="title" size="50" maxlength="10">
あと<span id="inputlength1">--</span>文字入力できます
</p>
<p>
<textarea id="title2" name="title" size="50"></textarea>
あと<span id="inputlength2">--</span>文字入力できます
</p>
</form>
<script>
function lengthCounter (node, max, cut) {
max = max || Number (node.maxLength) || 20;
return function () {
var rest = max - node.value.length;
if (rest < 0) {
if (cut) {
alert ('さくじょする');
rest = max;
node.value = node.value.substring (0, max);
}
}
return rest;
};
}
function dispValue (node, cbFunc) {
return function () {
node.firstChild.nodeValue = cbFunc ();
};
}
setInterval ( dispValue ( document.getElementById ('inputlength1'),
lengthCounter (document.getElementById ('title1'))), 333);
setInterval ( dispValue ( document.getElementById ('inputlength2'),
lengthCounter ( document.getElementById ('title2'), 20, true)), 333);
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLとJavaScriptで作った表示...
-
イベント発生順序
-
Request.Form(key)の中身をクリ...
-
テキストボックスに入力した色...
-
perl cgi文字化け解消方法と[1...
-
テキストボックスの背景色について
-
GetElementByIdがうまく取得で...
-
タイマーについて教えて下さい!!
-
ページ間で変数を保持したい
-
jQueryのdatepickerの日付が選...
-
テキストボックスのフォーカス移動
-
開いたサブウインドウから値を...
-
フォーカスが外れた時の入力チ...
-
return trueとreturn falseの用...
-
テキストボックス入力を半角英...
-
onClick="this.form.submit
-
<JavaScript>tableタグを入力不...
-
onchangeイベントを強制的に発...
-
追加ボタンを押した際に ok ボ...
-
正規表現で複数マッチ条件で悩...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLとJavaScriptで作った表示...
-
GetElementByIdがうまく取得で...
-
tabindexの取得
-
TextBoxに半角数字以外を入れた...
-
JavaScriptで作ったアプリが正...
-
プルダウンで選択された値を別...
-
HTMLファイル同士での値渡し
-
フォームの内容でリンク先URLの...
-
ページ間で変数を保持したい
-
テキストボックスに初期値で1...
-
javascriptのちょっとした動作...
-
入力するテキストエリアをボタ...
-
jQueryのdatepickerの日付が選...
-
JSPでonChangeを強制発行するに...
-
マイナスなら赤字で表示したい...
-
大文字か小文字かを判断する方法
-
VBscriptの配列変数をJavascrip...
-
一部Enter無効化の方法を教えて...
-
テキストエリアに履歴を残したい
-
フォーカスが外れた時の入力チ...
おすすめ情報