- ベストアンサー
テキストエリアの文字制限に関するJavaScriptのバグと改善方法
- テキストエリアの制限文字数を超えた場合に警告ダイアログが複数回表示されるバグがあります。警告ダイアログのOKボタンを押すと制限文字数を超えた部分の文字が消えるようなプログラムを組む方法を教えてください。
- また、setIntervalを使った入力可能文字カウンターを導入した場合、警告ダイアログが表示されなくなってしまいます。適切な方法をご教示ください。
- タイトル: テキストエリア文字制限のバグと改善方法 ハッシュタグ: #テキストエリア #文字制限 #JavaScript #バグ #改善方法
- みんなの回答 (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>
お礼
回答有難うございます。 今回はできました。