2011-01-25 291 views
7

我想擁有它說「密碼」中有一個用戶之前輸入密碼字段中輸入自己的密碼(讓他們知道現場是什麼)設置默認值

我d而只是使用Javascript,單獨導入jQuery看起來很浪費,但我不知道如何去做。這些圖像解釋很清楚:

它看起來像什麼:

enter image description here

我希望它看起來像:

enter image description here

這只是一個很簡單的網站和最基本的登錄(沒有驗證等)

任何想法?

<input id="username" name="username" class="input_text" type="text" value="Username" /> 
<input id="password" name="password" class="input_text" type="password" value="Password" />     
+1

你可以通過動態更改字段的類型(即第一個「文本」,在激活時更改爲「密碼」)來破解它。我不是100%肯定這會起作用。 – 2011-01-25 18:07:28

回答

10

更改password輸入是一個簡單的輸入型text。然後,在焦點事件上使用JavaScript(或JQuery),將其更改爲輸入類型password

這裏是一個小未測試樣本的與普通的JavaScript(無JQUERY):

<html> 
<head> 
    <script type="text/javascript"> 
     function makeItPassword() 
     { 
     document.getElementById("passcontainer") 
      .innerHTML = "<input id=\"password\" name=\"password\" type=\"password\"/>"; 
     document.getElementById("password").focus(); 
     } 
    </script> 
</head> 
<body> 
    <form> 
     <span id="passcontainer"> 
     <input onfocus="return makeItPassword()" name="password" type="text" value="Type Password" /> 
     </span> 
    </form> 
</body> 
</html> 
+3

+1。我就是這麼做的。 `(「#password」)。bind(「focus」,function(){$(this).val(「」); $(this).attr(「type」,「password」);});` – 2011-01-25 18:12:36

+1

請注意,更改`input`元素的`type`在IE上將無法正常工作。另見:http://stackoverflow.com/questions/1544317/ – CMS 2011-01-25 18:15:43

5

一個簡單的辦法:

<input id="username" name="username" class="input_text" type="text" placeholder="Username" /> 
<input id="password" name="password" class="input_text" type="password" placeholder="Password" /> 
14

如果您使用HTML5,那麼你應該使用placeholder attribute

<input id="username" name="username" class="input_text" type="text" placeholder="Username" /> 
<input id="password" name="password" class="input_text" type="password" placeholder="Password" /> 

如果你使用的HTML4,您可以創建一個fake password field

<script type="text/javascript"> 
    function pwdFocus() { 
     $('#fakepassword').hide(); 
     $('#password').show(); 
     $('#password').focus(); 
    } 

    function pwdBlur() { 
     if ($('#password').attr('value') == '') { 
      $('#password').hide(); 
      $('#fakepassword').show(); 
     } 
    } 
</script> 

<input id="username" name="username" class="input_text" type="text" v="Username" /> 
<input id="fakepassword" name="fakepassword" type="text" value="Password" style="color:#ccc" onfocus="pwdFocus()" /> 
<input id="password" name="password" class="input_text" type="password" style="display:none" onblur="pwdBlur()" /> 
-2

我還有另外一個想法來處理這個問題,你將不再需要使用Javascript:

<input onclick="value=''; type='password';" name="password" type="text" value="Password" /> 

或者你也可以做這樣的:

<input onclick="this.value=''; this.type='password';" name="password" type="text" value="Password" /> 

我不知道這種可能性的區別。 你可以改變的另一件事是寫,而不是onclick=.......onfocus=.....

我也不知道這裏的區別。

但我希望我能幫助你。 PS:對不起,因爲我英語不好,我是德國人。

1

下面的代碼添加到您的javascript:

function makePasswordHidden() { 
    document.getElementById("password").setAttribute("type", "password"); 
} 

更改輸入密碼:

<input id="password" name="password" class="input_text" type="text" value="Password" onfocus="makePasswordHidden();"> 

這樣做是什麼它使輸入元素的「密碼」和值被更新以便它被隱藏。如果您想爲值=「密碼」可見如果該字段爲空,然後添加以下JavaScript函數:

function makePasswordShown() { 
    document.getElementById("password").setAttrivute("type", "text"); 
} 

,並添加以下到您的密碼輸入:

onblur="if (this.value=='') makePasswordShown(); if (this.value=='') this.value='Password';"