Maciej Szczepański

Maciej Szczepański www, marketing,
reklama

Temat: Jak przekazać zmienną pomiędzy "focus" i "blur"

Witam mam następujący problem: w inpucie mam domyślne value. Po wpisaniu treści w inputa, treść wpisana ma pozostać, natomiast jesli input nie zostanie wypełniony ma powrócić do domyślnego tekstu. Poniżej mój kod, ale prakazanie zmiennej inputValue nie działa. Ktoś wie dlaczego?


$("input[type='text']").bind("focus", function() {
var inputValue = $(this).val();
$(this).addClass("input-active");
if ($(this).val() == inputValue){ $(this).val("")};
});

$("input[type='text']").live("blur", function() {
$(this).removeClass("input-active")
if ($(this).val() == ""){ $(this).val(inputValue)};
});

Temat: Jak przekazać zmienną pomiędzy "focus" i "blur"

Nie przekazuje wartości, bo inputValue jest zmienną lokalną.

Masz kilka opcji:
1. zadeklaruj inputValue jako zmienną globalną (ale zmienne globalne to zło... ;) )
2. użyj atrybutu placeholder (jeżeli nie musisz wysyłać dalej domyślnych wartości i domyślne formatowanie nie będzie problemem)
3. użyj metody data() :
$('input[type=text]').each(function()
{
$(this).data('default', $(this).val());
$(this).focus(function()
{
$(this).addClass('input-active');
if ($(this).val() == $(this).data('default'))
{
$(this).val('');
}
});
$(this).blur(function()
{
$(this).removeClass('input-active');
if ($(this).val() == '')
{
$(this).val($(this).data('default'));
}
});
});
Maciej Szczepański

Maciej Szczepański www, marketing,
reklama

Temat: Jak przekazać zmienną pomiędzy "focus" i "blur"

Dzięki Michał, o to mi chodziło.
Jacek Dunikowski

Jacek Dunikowski Front-end Developer

Temat: Jak przekazać zmienną pomiędzy "focus" i "blur"

Tak marginesie .live() już jest nieaktualne :D wygasło z wersją jquery 1.4, teraz jest .on().

http://api.jquery.com/live/

Pisze o tym bo stare wersje jquery mogą napsuć krwi.Ten post został edytowany przez Autora dnia 06.02.15 o godzinie 11:51



Wyślij zaproszenie do