2009-11-17 50 views
0
<input name="textbox" type="text" value="Click here to type" onfocus="if(this.value=='Click here to type')this.value='';" onblur="if(this.value=='')this.value='Click here to type';"> 

..onfocus/onblur在textfields上工作,但不在textarea元素上工作。有什麼解決方法,使用jQuery也許?textarea中的標籤

回答

1
<textarea onfocus="if(this.value=='Click here to type')this.value='';" onblur="if(this.value=='')this.value='Click here to type';">Click here to type</textarea> 

爲我工作。

如果您在值中添加了一些額外的換行符/空格,可能會失敗。

0

Watermark plugin for jQuery

這個簡單易用的jQuery插件增加了 水印能力HTML輸入和 textarea元素。

這個插件,您可以指定將用於水印, 文本 和可選則可以提供將被應用到 輸入或textarea元素每 時間水印顯示自己 CSS類名。

如果您不提供自己的類 名稱,則使用類名「watermark」爲 。

另外,這個插件可以讓你 改變水印文字和/或水印下課 名稱的任何時間 初始化。

插件還能夠 顯示在密碼 輸入元件中的水印,表示純文本水印 ,但隨後聚焦時切換到 密碼保護(掩蔽)模式 的。 (由於使密碼 水印操作的 複雜性,建議 即可以避免對密碼 輸入元件方案變化。)

新版本3.0,插件可以 也處理 類型的輸入元件= 「搜索」(WebKit瀏覽器)和 它支持拖放到 帶水印的元素,插件本機 瀏覽器支持(如果可用)。

3

onfocusonblur事件的所有表單元素和主持人的工作,你可以嘗試只是讓你input一個textarea,它會工作,但我會鼓勵你做你的事件編程結合。

像這樣:

var textarea = document.getElementById('textareaId'), 
    message = 'Click here to type'; 

textarea.value = message; // set default value 

textarea.onfocus = textarea.onblur = function() { 

    if (this.value == '') { 
    this.value = message; 
    } else if (this.value == message) { 
    this.value = ''; 
    } 
}; 

嘗試上述例子here

jQuery的version

$(function() { 
    var message = 'Click here to type'; 

    $('#textareaId').val(message); // set default value 

    $('#textareaId').bind('focus blur', function() { 
    var $el = $(this); 
    if ($el.val() == '') { 
     $el.val(message); 
    } else if ($el.val() == message) { 
     $el.val(''); 
    } 
    }); 
});