2011-10-29 32 views
0

plzは以下のスレッドを参照してください。設定デフォルト値8

   <div id="headertxtPassWord-Container" class="header-login-input-Container"> 
        <asp:TextBox ID="headertxtPassWord" runat="server" Text="password" 
        onclick="return onclickOfPassWord(this);" onblur="onblurOfPassWord(this);" 
         CssClass="header-login-input"></asp:TextBox> 
       </div> 

:私は私の目的のために、次のように回答#1をfollowd Set Default Value Of A Password

function onclickOfPassWord(This) { 
    if (This.value == 'password') { 
     $('#headertxtPassWord-Container').html("<input id='headertxtPassWord' name='headertxtPassWord' type='password' value='' onclick='return onclickOfPassWord(this);' onblur='onblurOfPassWord(this);' class='header-login-input' />"); 
     $('#headertxtPassWord').focus(); 
    } 
} 

function onblurOfPassWord(This) { 
    if (This.value == '') { 
     $('#headertxtPassWord-Container').html("<input id='headertxtPassWord' name='headertxtPassWord' value='password' onclick='return onclickOfPassWord(this);' onblur='onblurOfPassWord(this);' class='header-login-input' />"); 
    } 
} 

私のコードにはIE 8とFirefoxで問題があります。すべてのことは問題ありません。どのように修正できますか?我々はここで任意の戦利品をクリックした後に再び焦点を当てることはありませんテキストボックス

問題
....
を持っているのですか?

答えて

1

このコードを試してみてください。私はあなたの例を模倣しようとしましたので、より理にかなっています。

HTML

<div id="headertxtPassWord-Container" class="header-login-input-Container"> 
    <input id="headertxtPassWord" value="password" class="header-login-input" /> 
</div> 

jQueryの

$('.header-login-input').bind('click', function() { 
    if ($(this).val() === "password") 
    { 
     this.type = "password"; 
     $(this).val(''); 
    } 
}); 

$('.header-login-input').bind('blur', function() { 
    if ($(this).val() === "") 
    { 
     this.type = "text"; 
     $(this).val('password'); 
    } 
}); 

またhttp://jsfiddle.net/V2Dh5/3/

作業例を参照するシオマネキJS編集

これが答えをhttp://jsfiddle.net/V2Dh5/17/

+0

感謝親愛なる仲間のJSを見シオマネキIE 8

$('.header-login-input').live('click', PopulateElement); $('.header-login-input').live('blur', function() { if ($(this).val() === "") { $(".header-login-input-Container").html(''); $(".header-login-input-Container").html("<input id=\"headertxtPassWord\" name=\"headertxtPassWord\" class=\"header-login-input\" value=\"password\" type=\"text\"/>"); } }); function PopulateElement() { if ($(this).val() === "password") { $(".header-login-input-Container").html(''); $(".header-login-input-Container").html("<input id=\"headertxtPassWord\" name=\"headertxtPassWord\" class=\"header-login-input\" type=\"password\"/>"); setTimeout(function() { $("#headertxtPassWord").focus()}, 10); } } 

ための修正です/しかし、あなたの例では、IE 8の問題を抱えている - >まったく動作しません!火の狐のすべてのものは大丈夫です/私はIEの八が嫌い? – MoonLight

+0

前の答えをお詫びする@MoonLightあなたの権利はIE 8ではうまくいきません。しかし、今は愚かなIE 8のdosentが、doumentがロードされたときに要素の型属性を変更できるようになっています。だからIE 8で動作させる唯一の方法は、入力要素全体を置き換えることです(編集された答えを参照)。コードはあなたにコンセプトを示していることを覚えておいてください。私はそのようなjquery要素appendersを代わりに使用するような完全な要素の文字列をハードコーディングをお勧めしません。 – Bobby

+0

は本当に注目と編集に感謝しています - >もし私があなたの答え/ setTimeoutの2票を与えることができれば良いアイデアでした! – MoonLight

関連する問題