2012-04-03 14 views
2
<form> 
<input type="text" id="username" value="Username"> 
<div style="position:relative"> 
<span style="position:absolute;top:0;" id="passwordTxt">Password</span> 
<input style="position:absolute;top:0;visibility:visible;" 
type="password" id="password" value=""> 
</div> 
</form> 

var obj=document.getElementById("password") 
obj.addEventListener("change", change(0) , false); 
obj.addEventListener("input", change(0) , false); 
obj.addEventListener("focus", change(0) , false); 
obj.addEventListener("blur", change(1) , false); 

function change(action){ 
return function(){ 
var txt = document.getElementById("passwordTxt") 
var pass= document.getElementById("password") 
if(action){ 
if(pass.value =="") 
txt.style.visibility="visible"; 
} 
else txt.style.visibility="hidden"; 
} 
} 

type="password"が存在すると、ブラウザでremember password機能のプロンプトが表示されます。ユーザー名が既に存在する場合は、キャッシュされたユーザー名でポップアップをドロップダウンし、そのpasswordが存在する場合は、ブラウザによってポピュレートされます。しかし、その機能はJSイベントをトリガーしません!!私はspanをパスワードや任意の値がそのパスワードのテキストボックスに入力されていれば非表示にしたいが、ブラウザの機能は小さなバグが這い上がるようにすることだ。ブラウザ自動入力機能がJSイベントをトリガーしない

すべてのヘルプは高く評価されては。(jQueryを使って作業しておりませんので、プレーンなJSの回避策/ソリューションは、私を助けるものです)

答えて

0

私はあなたがそれが空の場合、タイトルのパスワードを使用してテキストボックスを曇らせるしたいと考えています。私が考えることができる単純な解決策は、ページの読み込みを行い、テキストが利用可能かどうかを確認することです。

より良いアプローチは、既存のフレームワークとテスト済みのフレームワークを使用することです。ブートストラップで探しているものを見つけることができます。 http://twitter.github.com/bootstrap/base-css.html#formsにアクセスして、インラインフォームを見てください

+0

フックにページを読み込み、テキストを確認してください。..あなたはそれについて詳しく説明できますか?そして、はい - インラインフォームで起こっていることは、私がしようとしていることです残念ながら、それに凝結時間があります。 –

+0

なぜブートストラップを使用しないのですか?あなたのコードから、あなたはIEをとにかくターゲットにしていませんか? – Ramesh

+0

まあ、そのサンプルコード..と私はそれがcross-broserであり、ブートストラップ - HTML5を使用していました。これは古いブラウザでは互換性がありません。 –

関連する問題