LoginSignup
6
6

More than 5 years have passed since last update.

入力例を表示させる「ah-placeholder.js」、自動入力スクリプトと併用時にIE9以下で文字色が変わらない問題を解決

Last updated at Posted at 2014-06-03

タイトル長くてすみません。

やりたかったこと

以前、表示例を入力フォーム内に表示させるjQueryプラグイン「ah-placeholder」を紹介しました。placeholder属性に対応していないIE9以下でも、placeholderに記述すれば入力例が表示される、便利なプラグインでした。

参考
フォーム内に入力例を表示させるには、どの方法がいいの?

しかし、いざ実装すると問題が発覚しました。
それは、エントリーフォームによくある「郵便番号から住所を自動入力する」「フリガナを自動入力する」という機能と組み合わせると、 入力例が灰色のまま残ってしまう という現象です。

解決方法

はじめに、こんなスクリプトを書いておきます。
このファンクションを、onblur または onfocus で使います。
id は適宜変更してください。

<script>
function add_change(){
document.getElementById('address').style.color="#000000";
}
function kana_change(){
document.getElementById('kana').style.color="#000000";
}
</script>

onblur

とある入力フォームからカーソルが外れた時点で、該当する文字列の文字色を、IDで指定して変えるという方法。郵便番号から住所の自動入力をする時に使います。

<input id="zip" type="text" name="zip" value="" onblur="add_change()" placeholder="ex) 439-0005">

<input id="address" type="text" name="address" value="" placeholder="ex) Shibuya">

onfocus

onbluerの逆で、そのフォームにカーソルが置かれた時点で、文字色を変えるという方法。名前からフリガナを自動入力するときに使います。

<input id="kanji" type="text" name="kanji" value="" onfocus="kana_change()" placeholder="ex) 山田">

<input id="kana" type="text" name="kana" value="" placeholder="ex) やまだ">

まとめ

自動入力に使っているスクリプトによって、対処方法が変わってくるかもしれません。

なんか無理矢理な感じなので、もっとスマートなやり方はないのかな。

無理してplaceholder 指定しなくても、欄外に入力例を書けばいいじゃん、という指摘もありますが、そうもゆかないのですよ。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6