ひとまず、↓のJsfiddleでやりたいことを試しました。
https://jsfiddle.net/h_tran93/2puohncL/27/
HTML
1<div class="js-AddButton__Target"> 2 <div class="p-AddSerif"> 3 <textarea class="sample"></textarea> 4 <div class="p-AddSerif__count" data-count="10"></div> 5 </div> 6 <br> 7 <div class="p-AddSerif"> 8 <textarea class="sample"></textarea> 9 <div class="p-AddSerif__count" data-count="10"></div> 10 </div> 11 <br> 12 <div class="p-AddSerif"> 13 <textarea class="sample"></textarea> 14 <div class="p-AddSerif__count" data-count="10"></div> 15 </div> 16 <br> 17</div> 18 19 <input type="button" class="sample_btn" value="送信する">
css
1.p-AddSerif__count.cnt_danger{ 2 color: #FF0000; 3}
Jquery
1$(function(){ 2 function countTextArea(input) { 3 //文字数を表示する.p-AddSerif__countを取得 4 var counter = $(input).parents('.p-AddSerif').find(".p-AddSerif__count"); 5 // データ属性(data-count)から最大文字数を取得 6 var maxLength = counter.data("count"); 7 // 現在の文字数を取得 8 var currentLength = $(input).val().length; 9 var htmlVal = currentLength + " / " + maxLength; 10 11 //現在たい最大を比較 12 if ( parseInt(currentLength) <= parseInt(maxLength) ) { 13 /* counter.html("<span style='color:red'>" + htmlVal + "</span>"); */ 14 counter.html(htmlVal); 15 counter.removeClass('cnt_danger'); 16 $('.sample_btn').prop('disabled', false); 17 } else { 18 counter.html(htmlVal); 19 $('.sample_btn').prop('disabled', true); 20 counter.addClass('cnt_danger'); 21 } 22 } 23 24 // ページ表示時に文字数をカウントして表示 25 $('textarea').each(function(){ 26 countTextArea($(this)); 27 var textLetter = $(this).val().length; 28 }); 29 30 // フォーム入力時に文字数をカウントして表示 31 $('textarea').on('keydown keyup keypress change',function(){ 32 countTextArea($(this)); 33 }); 34});
実装したいこと
textareaに入力した文字数が10文字超えたら、
●現在の入力文字数を表示
●現在の入力文字数が最大文字超えたら色が赤くなる
●↑+送信ボタンが押せなくなる
もっとやりたいこと
送信ボタンは1個しかないのTextareaにただ、一個(Textarea)だけは入力文字数が10文字超えると送信ボタンが押せなくなりたいです。
どなたかお分かりになるかた、ご教示いただけると助かります。
回答1件
あなたの回答
tips
プレビュー