To rozwiązanie wymaga jQuery!
ja owinięty tej funkcji w module utils tak:
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;
}());
w HTML:
Dodaj: class="input-autoclear"
do każdego wejścia chcesz być włączone.
ustawić wartość domyślną: <input ... value="defaultValue" ... >
Tworzenie niektórych klas CSS dla tekstu lub cokolwiek chcesz szary i czarny.
Osobiście używam .gray { ... }
i .black { ... }
, ale możesz potrzebować lepszych imion.
Wreszcie:
Ogień metoda moduły utils przy użyciu:
$(document).ready(function() {
...
utils.setupAutoclearInputs();
...
}
Upewnij się, że kod dla modułu mieszka poza wezwanie document.ready i prawdopodobnie zechcesz go w globalnym zakresie swojej podanie.
Aby uzyskać więcej informacji na temat właściwego pisania kodu JavaScript, odwiedź tę stronę: article.
Dzięki temu tekst nigdy nie wraca przy wyjściu. – cchiera
Przepraszamy, poprawiono teraz. Użyłeś niewłaściwie słowa "this", aby uzyskać dostęp do wartości zmiennej 'defaultText'. Jeśli potrzebujesz pomocy w zrozumieniu słowa kluczowego "this", oto dobry zasób: http://www.learningjquery.com/2007/08/what-is-this – shaunsantacruz