前提条件
規定でjQueryのリアルタイムチェックは使用不可です。
こちらのサイトを参考にリアルタイムチェックのjsを設置しました。
https://liberty-dock.com/business_post/js%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AE%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%90%E3%83%AA%E3%83%87%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3/
やりたいこと、問題
最初からエラーメッセージを表示し、入力するとエラーが外れます。
コードは下記ですが、ラジオボタンはクリックすると反応しますが、
テキストボックスは文字を入力しても反応しません。
どこに問題があるのか教えていただければ助かります。
html
1<div class="err_01"> 2<p>お名前<span>必須</span></p> 3<p class="error on">お名前をご入力ください!</p> 4<input value="" type="text" name="textbox1"> 5</div> 6 7<div class="err_02"> 8<p>ふりがな<span>必須</span></p> 9<p class="error on">ふりがなをご入力ください!</p> 10<input value="" type="text" name="textbox2"> 11</div> 12 13<div class="err_03"> 14<p>プレゼントを選んでください<span>必須</span></p> 15<p class="error on">プレゼントをお選びください!</p> 16<label for="radio1_0"><input name="radio1" type="radio" id="radio1_0" value="0"></label> 17<label for="radio1_1"><input name="radio1" type="radio" id="radio1_1" value="1"></label> 18<label for="radio1_2"><input name="radio1" type="radio" id="radio1_2" value="2"></label> 19</div>
css
1.error{display:none;} 2.on{ 3display:inline-block; 4position:relative; 5background:red; 6padding:15px; 7text-align:center; 8color:white; 9-webkit-border-radius:3px; 10-moz-border-radius:3px; 11margin:3px; 12} 13.on:after{/*ふきだし*/ 14border: solid transparent; 15content:''; 16height:0; 17width:0; 18pointer-events:none; 19position:absolute; 20border-color:red; 21border-top-width:10px; 22border-bottom-width:10px; 23border-left-width:10px; 24border-right-width:10px; 25margin-left: -10px; 26border-top-color:#red; 27top:100%; 28left:12%; 29} 30
javascript
1//お名前 2function text_require01(_this) { 3 if(_this.val().length > 200 || _this.val() == ''){ 4 _this.next('.error').addClass('on'); 5 } else { 6 _this.next('.error').removeClass('on'); 7 } 8} 9 10//ふりがな(実際はふりがなではないため、カタカナのみなどの判定はいりません) 11function text_require02(_this) { 12 if(_this.val().length > 200 || _this.val() == ''){ 13 _this.next('.error').addClass('on'); 14 } else { 15 _this.next('.error').removeClass('on'); 16 } 17} 18//プレゼント 19function radio_require01(_this) { 20 var check_require = _this.parents('.err_03').find('input[type="radio"]:checked').length 21 if(check_require > 0){ 22 _this.parents('.err_03').children('.error').removeClass('on'); 23 } else { 24 _this.parents('.err_03').children('.error').addClass('on'); 25 } 26} 27//各種関数のまとめ 28function batch_execution() { 29 text_require01($(".err_01 input[type=text]")); 30 text_require02($(".err_02 input[type=text]")); 31 radio_require01($(".err_03 input[type=radio]")); 32} 33//バリデーションの実行タイミング 34$(function(){ 35$('.err_01 input[type="text"]').blur(function(){ 36text_require01($(this)); 37}); 38$('.err_02 input[type="text"]').blur(function(){ 39text_require02($(this)); 40}); 41$('.err_03 input[type="radio"]').on('change', function(){ 42radio_require01($(this)); 43}); 44});

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/31 01:01