這種解決方案需要的jQuery!
我一個utils的模塊中包裹該功能像這樣:
var utils = (function() {
var utils = {};
//some other properties...
utils.setupAutoclearInputs = function() {
$('.input-autoclear').each(function() {
$(this).data('default', $(this).val()).addClass('gray');
}).focus(function(e) {
if (!($(this).val() !== $(this).data('default'))) {
$(this).removeClass('gray').addClass('black').data('modified', true).val('');
}
}).blur(function(e) {
if (!($(this).val() !== $(this).data('default')) || $(this).val() === '') {
$(this).removeClass('black').addClass('gray').val($(this).data('default'));
}
});
}
//some other methods...
return utils;
}());
在HTML:
地址:class="input-autoclear"
您要包括在每個輸入。
設置默認值:<input ... value="defaultValue" ... >
創建灰色和黑色文字,或任何你想要一些CSS類。
我個人用的是.gray { ... }
和.black { ... }
,但你可能想要更好的名字。
最後:
消防使用utils的模塊方法:
$(document).ready(function() {
...
utils.setupAutoclearInputs();
...
}
確保該模塊的代碼存在的的document.ready外呼,你可能會希望它在全球範圍內的應用。
有關正確的javascript模塊編寫的更多信息,請訪問article。
有了這個,文本永遠不會退出退出。 – cchiera
對不起,現在修復。您不正確地使用'this'關鍵字來訪問變量'defaultText'的值。如果你需要幫助理解'this'關鍵字,這裏是一個很好的資源:http://www.learningjquery.com/2007/08/what-is-this – shaunsantacruz