2012-02-13 75 views
2

這裏是我輸入的JavaScript嵌入代碼輸入(密碼)的onblur的JavaScript錯誤Internet Explorer 7和8

<input type="text" value="Please type username here..." onfocus="if (this.value == 'Please type username here...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Please type username here...';}" name="name1" id="username"> 

它工作在Mozilla,IE9瀏覽器,但在IE7和IE8不工作,它顯示文本,而不是密碼(星號)或隱藏值。

+0

我已將它複製並粘貼到一個文件中,並在IE8中進行了測試和工作。 – 2012-02-13 08:09:38

+0

同樣。在IE8和IE7模式下測試,兩者都可以正常工作。你確定你複製了正確的代碼行嗎?這是一個用戶名字段,而不是密碼。 – Feysal 2012-02-13 08:11:18

+1

IE8中的[this jsfiddle](http://jsfiddle.net/SZ9sP/)沒有問題。 – scessor 2012-02-13 08:11:35

回答

1

對此行爲使用placeholder屬性。這樣,您就不需要支持此屬性的現代瀏覽器中的任何JavaScript。然後,您可以使用polyfill使其在IE9及更舊版本的瀏覽器中運行。

你的HTML看起來像:

<input type="text" placeholder="e.g. myusername" name="username" id="username"> 
<input type="password" placeholder="e.g. hunter2" name="password" id="password"> 

我做a @placeholder polyfill in jQuery plugin format,你可以爲使用如下:

$('input').placeholder(); 

這裏有一個演示:http://mathiasbynens.be/demo/placeholder正如你所看到的,它處理textarea S和密碼投入就好了。

+0

是的thnx哥們,我會試試,一定會回覆結果:) – 2012-02-14 05:47:03

相關問題