2012-11-03 41 views
0

模糊我正在尋找一種方法來控制的默認值,的onfocus和的onblur用JavaScriptTexarea聚焦狀態,在使用javascript

的textarea的

(我知道:
- 在textarea的默認值是:<textarea name="text"> Default value </textarea>
- 有一些解決方案,HTML5和使用jQuery但在這裏我要尋找一個純JavaScript解決方案)

我能有這樣的應用到textarea的?:

form name="form1" action="comprovar.php" method="post"> 
    <input type="text" name="name" value="name" 
     onfocus="if (this.value=='name') this.value = '';" 
     onblur="if (this.value=='') this.value = 'name';" 
    /> 
</form> 

我怎樣才能獲得的onfocus和模糊這裏?:

<textarea name="text"> Write here </textarea> 

的例子住在這裏:http://jsfiddle.net/sKvMa/

回答

2

您可以在textarea的onfocusonblur究竟怎麼樣,你從你的輸入可。看到這個演示:http://jsfiddle.net/sKvMa/1/

<textarea name="text" 
    onfocus="if (this.value=='Write here') this.value = '';" 
    onblur="if (this.value=='') this.value = 'Write here';" >Write here</textarea> 
+0

內聯JS是壞的...... – AlanFoster

+1

是的,我同意瀏覽器。只是展示了這個概念。 – techfoobar

+0

順便說一句,如果它的*只是*爲佔位符文本,那麼你最好使用'佔位符'HTML功能(舊版本的IE將有困難應對雖然) – techfoobar

0

,或者你可以從jQuery的指定這類

var mytext = $("textarea[name='text']").val(); 

,那麼你可以比較文本

if (mytext == 'Write here') 
    //do this 
else 
    //do that 
+1

可能是因爲它不完整。但是,如果提供誤導性或明顯的錯誤答案,這應該是一個不合適的使用downvoting的答案。如果情緒低落者認爲情況如此,他應該爲此添加評論,否則他自己只是在誤導(和一個巨魔)。至少把它帶回到零! – Stumbler

1

實際上,你可以做到這一點,而不使用JavaScript在所有,儘管它是HTML5的一個特性,所以它可以在現代瀏覽器中使用。

<textarea name="text" placeholder="Write here"></textarea> 

根據您使用佔位符的情況,這可能適合您,因爲實施和維護腳本解決方案要簡單得多。

+0

我可以只使用這個HTML5解決方案嗎?如果我必須提供可以隨處使用的jQuery或JavaScript的替代解決方案,爲什麼還要考慮包含HTML5解決方案呢? – Nrc

+0

我個人只是用這個。沒有JavaScript或jQuery。它適用於IE10和幾乎所有其他的東西。 – Fenton

1

在新的瀏覽器中,您可以使用placeholder屬性。 jsfiddle 對於不支持佔位符

if(!'placeholder' in document.createElement("input")){ 

     var input = document.getElementsByTagName("input"), 
      textArea = document.getElementsByTagName("textarea"); 
    for(var k = 0; k < input.length; k++){ 
     input[k].value= "name"; 
     input[k].onblur = function(){ 
      if(this.value == "") this.value = "name" 
     } 
     input[k].onfocus = function(){ 
      if(this.value == "name") this.value = "" 
     } 
    } 
    for(var k = 0; k < textArea .length; k++){ 
      textArea [k].value= "name"; 
     textArea [k].onblur = function(){ 
      if(this.value == "") this.value = "name" 
     } 
     textArea [k].onfocus = function(){ 
      if(this.value == "name") this.value = "" 
     } 
    } 
} 
​​ 
相關問題