前提・実現したいこと
railsにてjQueryを利用しています。
フォームが空白でフォーカスされてない時にform-activeクラスを付与しbackgroundを赤に変え
空白でフォーカスされている時と空白ではない時はform-activeクラスを削除するようにしたいです。
発生している問題・エラーメッセージ
更新後は上記の通り動いたのですが 一回バックスペースで全て削除した後再度入力しform-design以外をクリックするとform-activeが付与されてしまいます。 私の考えでは入力されているのでif文で弾かれremove及び「空白ではない」とconsoleに出る見込みなのですが layout.js:5 (記入されている文字)←form-designをクリック後 layout.js:17 空白ではない layout.js:12 空白かつフォーカスされてない←form-design以外をクリック後 layout.js:12 空白かつフォーカスされてない layout.js:12 空白かつフォーカスされてない layout.js:12 空白かつフォーカスされてない layout.js:12 空白かつフォーカスされてない layout.js:12 空白かつフォーカスされてない layout.js:12 空白かつフォーカスされてない となり、layout.js:5,:17で記入されているのを認識されているにも関わらず その後form-design以外をクリック後も5,17を期待しているのですが12が読み込まれます。
該当のソースコード
haml
1 2= form_with(url: xxx_path,method: :get, local: true)do |f| 3 = f.text_field :keyword, {class: "form-design form-active",required: true}
css
1.form-active{ 2 background: red; 3}
js
1$(function(){ 2 $(document).on('keyup click', '.form-design', function(e){ 3 e.preventDefault(); 4 var input = $(".form-design").val(); 5 console.log(input); 6 if(input == "") { 7 $(".form-design").on("focus",function(){ 8 $(this).removeClass("form-active"); 9 console.log("空白かつフォーカス中"); 10 }).on("blur",function(){ 11 $(this).addClass("form-active"); 12 console.log("空白かつフォーカスされてない"); 13 }); 14 } 15 else{ 16 $(this).removeClass("form-active"); 17 console.log("空白ではない"); 18 } 19 }); 20});

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/26 08:11 編集
2022/02/26 08:36
2022/02/27 06:44