• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストエリアの制限字数以上の文字を消したい)

テキストエリアの文字制限に関するJavaScriptのバグと改善方法

このQ&Aのポイント
  • テキストエリアの制限文字数を超えた場合に警告ダイアログが複数回表示されるバグがあります。警告ダイアログのOKボタンを押すと制限文字数を超えた部分の文字が消えるようなプログラムを組む方法を教えてください。
  • また、setIntervalを使った入力可能文字カウンターを導入した場合、警告ダイアログが表示されなくなってしまいます。適切な方法をご教示ください。
  • タイトル: テキストエリア文字制限のバグと改善方法 ハッシュタグ: #テキストエリア #文字制限 #JavaScript #バグ #改善方法

質問者が選んだベストアンサー

  • ベストアンサー
回答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>

shorinji36
質問者

お礼

回答有難うございます。 今回はできました。