JavaScript | フォーカスされているフォームのスタイルを変更する方法
JavaScriptでフォーカスされているフォームの文字色や背景色、サイズなどのスタイルを変更する方法のサンプルコードです。
See the Pen JavaScript Get form text in real time by yochans (@yochans) on CodePen.
フォーカスされているフォームのスタイルを変更する
フォーカスされているフォームのスタイルを変更するにはCSSで「:focus」を使って指定する事も可能ですが、今記事ではJavaScriptで動的に変更させる方法の紹介となります。
上記、動作サンプルのサンプルコードです。
<p><input type="text" class="text_box" name=""></p>
<p><input type="text" class="text_box" name=""></p>
<textarea class="text_area" name="" rows="8"></textarea>
const target = document.querySelectorAll('.text_box, .text_area');
for(let i in target){
if (target.hasOwnProperty(i)) {
target[i].addEventListener('focus', focus_on_ivent);
target[i].addEventListener('blur', focus_out_ivent);
}
}
//フォーカスされた時
function focus_on_ivent(e) {
e.target.style.background = '#ffdab9';
}
//フォーカスが解除された時
function focus_out_ivent(e) {
e.target.style.background = '';
}
querySelectorAll()でclass名から対象のフォームを配列として取得しています。
カンマで区切る事で複数のidやclass名などを指定可能です。
const target = document.querySelectorAll('.text_form, .text_area');
idやclass名ではなく、要素の種別でも指定可能です。
const target = document.querySelectorAll('input[type="text"], textarea');
対象の要素にフォーカスされた時と、フォーカスが解除された時のイベントを追加します。
今回は別途「focus_on_ivent」「focus_out_ivent」という関数を用意しています。
for(let i in target){
if (target.hasOwnProperty(i)) {
target[i].addEventListener('focus', focus_on_ivent);
target[i].addEventListener('blur', focus_out_ivent);
}
}
フォーカスのオンオフで実行させる関数です。
サンプルでは単純に背景色のみをフォーカス時に変更、解除しています。
//フォーカスされた時
function focus_on_ivent(e) {
e.target.style.background = '#ffdab9';
}
//フォーカスが解除された時
function focus_out_ivent(e) {
e.target.style.background = '';
}
ディスカッション
コメント一覧
まだ、コメントがありません