2009-12-10 10 views
5
<input type="text" value="useraname" /> 
<input type="password" value="password" /> 

jQueryを使用してクリック/フォーカスでインラインラベルを消しています。パスワードはいつものように雄牛を示していますが、どういうわけか、パスワードフィールドに「パスワード」ラベルを(?パスワード欄のラベル

編集に追加:ユーザーの入力したパスワードを忘れてしまいたい!

おかげ

答えて

6

これにはプラグインがあります。例えばlabelifyを参照してください。

+0

プラグインと間違えられていない限り、docsはパスワードに言及していません。フィールドタイプの1つを「パスワード」にすばやく変更したところ、すべての文字がドットになりました。このプラグインはOPが要求するパスワードフィールドで動作しますか? – megaSteve4

+0

ここに同じ話があります。テキストフィールドのみで、パスワードフィールドでは使用できません。 –

0

あなたが入力タイプは、=「テキストボックス」を作る場合は、パスワードを確認することができます。

+0

もちろん、パスワードも表示されます。私はラベルがテキストである必要があります。 – 3zzy

+0

あなたはそれが何を意味するか分かりません。 – Galen

+4

ボックスがフォーカスを受け取るとすぐに、type = "password"に変更します。おそらく、すでにボックスにフォーカスがあるときに値をクリアするコードがあるので、そこに追加するだけです。 プラグインの方が良いかもしれません。 – McPherrinM

0

入力タイプ= "テキスト" >を動的にオーバーレイする必要があると思います。

1

以下のコードを確認してください。この機能を使用する入力要素には、addPassClear("Password")を追加してください。

$(function() { 
$.fn.addPassClear = 
function(text) 
{ 
    return $(this).each(
    function() 
    { 
    $(this).focus(function(event){$(this).passFocusize(text); $(this).select(); }); 
    $(this).blur(function(event){$(this).passBlurize(text); }); 
    }); 
} 
$.fn.passFocusize = 
function(text) 
{ 
    return $(this).each(
    function() 
    { 
    if ($(this).val()==text && $(this).attr("type")=="text") 
    { 
     $(this).val(""); 
     this.type="password"; 
    } 
    }); 
}; 
$.fn.passBlurize = 
function(text) 
{ 
    return $(this).each(
    function() 
    { 
    if ($(this).val()=="") 
    { 
     $(this).val(text); 
     this.type="text"; 
    } 
    }); 
}; 
}; 
4

なぜすべての長いスクリプトですか?それは半分のコードの行で行うことができる簡単な作業JUS:

<input type='text' onclick="this.type='password',value=''" class='watever' value='password'..etc 

歓声を

+1

これは大好きですが、onfickはonclickよりも優れていると思います。これは、ユーザーがタブをタップしたときにトリガーされるためです... – neokio

0

私のソリューションは、ダンは上記のものに近いjQueryのプラグインをラベル。

<script language="javascript" type="text/javascript"> 
    function SwapLabel(id, label, alttype) { 
     $(id).focus(function() { 
      if (this.value == label) { 
       this.value = ""; 
       if (this.type == 'text' && label == 'Password') { 
        this.type = alttype; 
       } 
      } 
     }); 
     $(id).blur(function() { 
      if (this.value == "") { 
       this.value = label; 
       if (this.type == alttype && label == 'Password') { 
        this.type = 'text'; 
       } 
      } 
     }); 
    } 
    $(document).ready(function() { 
     SwapLabel('#UserName', 'Username', ''); 
     SwapLabel('#Password', 'Password', 'password'); 
    }); 
</script> 

選択肢は、ここでは、「ラベル」パラメータを省略するだろう、とだけlabelify.jsが何をするか、基本的には「タイトル」の値を、使用します。 labelifyの部分に、必要に応じてこれらのイベントハンドラをタイプテキストのすべての入力に適用するだけで追加できます。またはlabelifyダウンロードし、必要に応じて以下のコードを追加します。

  if (this.type == 'text' && label == 'Password') { 
       this.type = alttype; 
      } 

      if (this.type == 'text' && label == 'Password') { 
       this.type = alttype; 
      } 

ザ・唯一の利点labelifyが、それはあなたの元の質問への答え含まれていることである上で、私のスニペットがあります:私は何とかその可能かしら

をパスワードフィールドの中に "Password"ラベルをテキストとして(?の代わりに)表示しますか?