我目前使用..清除TEXTAREA值點擊(聚焦狀態)
onfocus="this.value=''; return false;"
清除我的文字區域內的值留下評論。但是,當您點擊輸入評論並輸入一些內容時,如果您要在框外點擊以閱讀頁面上的其他內容,然後再次點擊textarea框內的內容以返回評論,則會清除當前輸入。
有沒有辦法在初始點擊時清除textarea,只是爲了清除默認值而不是其他瀏覽器頁面會話的其餘點擊?
我目前使用..清除TEXTAREA值點擊(聚焦狀態)
onfocus="this.value=''; return false;"
清除我的文字區域內的值留下評論。但是,當您點擊輸入評論並輸入一些內容時,如果您要在框外點擊以閱讀頁面上的其他內容,然後再次點擊textarea框內的內容以返回評論,則會清除當前輸入。
有沒有辦法在初始點擊時清除textarea,只是爲了清除默認值而不是其他瀏覽器頁面會話的其餘點擊?
在javascript中聲明變量clearedOnce
,該值爲false。在你的焦點上,檢查這個變量。如果它是假的,則將其設置爲true並清除textarea。所有以後的點擊都無能爲力。代碼:
onfocus='if (!clearedOnce) { this.value = ''; clearedOnce = true;} return false;'
您可以使用全局頁面var。
在元素
var tracker = {};
後來高於script
元素...
<textarea name="a" onfocus="if(!tracker[this.name]) { tracker[this.name]=true; this.value=''; } return false;">Placeholder text</textarea>
這是更好地把指令轉換成一個標籤標記,它正上方,textarea的,然後把它隱藏或如果textarea是關注的話,則顯示它。原因是因爲你的textearea將填充指令,如果它們在表單中,這些指令可能會被髮送。
但是,解決你的問題,你需要做的是:
onfocus="if(this.value== "your initial text"){this.value=''}; return false;"
一個更好的版本會的onfocus =「如果(THIS.VALUE =此。 defaultValue){this.value =''}; return false;「 – KOGI 2011-02-17 18:43:31
這將有助於
function clearTA {
if(this.value != "type here") {
this.value = '';
return false;
}
}
和聚焦狀態HTML屬性
...onfocus="clearTA()"..
所以我想你有一個預先填好的值,如「在此輸入您的文字」? 嘗試添加此javascript:
function clearText(textarea,prefilled){
if(textarea.value==prefilled)
textarea.value="";
return false;
}
然後,你輸入應該是: 在這裏輸入
文字這應該讓你開始...
<script type="text/javascript">
function clearOnInitialFocus (fieldName) {
var clearedOnce = false;
document.getElementById(fieldName).onfocus = (function() {
if (clearedOnce == false) {
this.value = '';
clearedOnce = true;
}
})
}
window.onload = function() { clearOnInitialFocus('myfield');
</script>
來源:http://snipplr.com/view/2206/clear-form-field-on-first-focus/
我知道這是遲到,但對任何有這個問題的人,我相信最簡單的答案是
onfocus="this.value=''; this.onfocus='';"
應該做的正是你想要的,而不必存儲/查看任何變量。
我認爲從內容分離邏輯是個好習慣。因此,使用jQuery(我們都使用jQuery,是嗎?),你可以這樣做:
$(document).ready(function() {
var _bCleared = false;
$('form textarea').each(function()
{
var _oSelf = $(this);
_oSelf.data('bCleared', false);
_oSelf.click(function()
{
if (!_oSelf.data('bCleared'))
{
_oSelf.val('');
_oSelf.data('bCleared', true);
}
});
});
});
這將遍歷所有網站上的文字區域,並存儲在一個單獨的數據綁定他們明確狀態的布爾值。 onclick事件也是針對每個textarea單獨處理的,因此您可以在單個頁面上使用多個textarea/textarea清除功能,並且不需要Javascript濺出您的html。
取而代之,使用HTML5的placeholder
併爲舊版瀏覽器使用jquery插件。
運行例如這裏: http://jsfiddle.net/dream2unite/xq2Cx/
<input type="text" name="email" id="email" placeholder="[email protected]">
必須通過以下腳本陪同:
$('input[placeholder], textarea[placeholder]').placeholder();
當你輸入一個電子郵件文本(佔位符)會消失,只有當你刪除電子郵件將文本(佔位符)重新出現。
最後,一個jQuery插件佔位符的一個明顯的例子就是這樣一個: http://mathiasbynens.be/demo/placeholder
@Derek:應用你的建議編輯 – Andomar 2011-02-17 19:12:52