2012-04-09 13 views
0

http://jsfiddle.net/udit_sharma/GFknc/ヒントテキストが削除されていません

私はこのフィドルを作成しました。入力ボックスを持ち、ヒントテキストを持っています。この入力ボックスに焦点を合わせると、ヒントが表示されます。テキストは正しくクリアされています。この入力ボックスのヒントからフォーカスしたときに、ユーザーが何も入力していなければ、テキストが再び表示されます。

しかし、入力ボックスに集中してブラウザの別のタブをクリックしたとすると、今度はこのフィドルに復帰すればヒント - これを残している間にテキストが表示されていることに気付くページ。また、入力ボックスをクリックしている間にこれをクリアしません。 ?

私が見つけた問題は、onblurが呼び出されていない別のタブをクリックすると、変数 "valueChanged"がfalseに設定されていないということです。したがって、再度フォーカスを当てている間は、デフォルトのヒントテキスト値をクリアしていません。

なぜ私はonBlurが呼び出されていないのか分かりません。誰かがこれについて手掛かりを持っている場合、この機能を実行する他の方法を教えてください。

+0

私はあなたの問題を再現することができませんでした... – Luan

+0

は、よく私は、少なくとも私のブラウザ上にクロム –

+0

には、プレースホルダを使用し、使用しないで、なぜ、あなたはサイドノートで –

答えて

0

あなたはこれを試すことができます。

<input type="text" name="placeHolder" placeholder="hy i'm a place holder" /> 

あなたのhtmlファイルの上に<!DOCTYPE html>を追加することができ、ので、それはHTML5の属性です。

+0

これは動作しますが、Webブラウザ(Internet Explorerはその1つではありません)でのみ動作します。 – Luan

0

のように見えます。Chromeは、テキストボックスのためにオンブラッドを2回発射しているようです。私は、blurイベントを名前付き関数にし、フォーカスの間にぼかしをバインドすることで、これを解決できましたaddOptionInputEle.off('blur').on('blur', onAddOptionBlur);。その後、onAddOptionBlurの中で、私はブラーハンドラのすべてのインスタンスをアンバインドするループを作った。

while(addOptionInputEle.data('events').blur) 
{ 
    addOptionInputEle.off('blur'); 
} 

注:chrome以外はテストされていません。

関連する問題