/** * Wtyczka jQuery obslugujaca etykiety wewnatrz pol tekstowych typu input. * Wiecej informacji pod adresem: http://webprogramming.pl/2008/javascriptjquery-wtyczka-obslugujaca-etykiety-w-inputach/ * * @copyright Copyright (c) 2008 Szymon Szczepaniak (http://www.webprogramming.pl) */ (function($) { $.fn.extend({ /* * Funkcja podmieniająca klase class1 na klase class2. */ replaceClass: function(class1, class2) { var clazz = $(this).attr('class') || ""; clazz = clazz.replace(class1, class2); $(this).attr('class', clazz); return $(this); }, /* * Funkcja inicjujaca obsluge etykiet wewnatrz pol formularza. * * @param text Tresc etykiety, domyslnie pobierana z atrybutu 'alt'. * @param clazzActive Klasa CSS, ktora bedzie posiadac pole gdy stanie sie aktywne, domyslnie brak. * @param clazz Klasa CSS, ktora bedzie posiadac pole gdy bedzie nieaktwyne, domyslnie brak. */ labin: function(text, clazzActive, clazz) { clazz = clazz || false; clazzActive = clazzActive || false; return $(this).each(function() { // podano tresc etykiety zainicjuj if(!!text) { $(this).attr('alt', text); } // podano klase "nieaktwyna" if(!!clazz) { $(this).addClass(clazz); } $(this) .val($(this).attr('alt')) .focus(function() { if($(this).val() == $(this).attr('alt')) { $(this).val(""); if(!!clazzActive) { if(!!clazz) { $(this).replaceClass(clazz, clazzActive); } else { $(this).addClass(clazzActive); } } } }) .blur(function() { if($(this).val() == "") { if(!!clazzActive) { if(!!clazz) { $(this).replaceClass(clazzActive, clazz); } else { $(this).removeClass(clazzActive); } } $(this).val($(this).attr('alt')); } }); }); }, /* * Funkcja podmieniająca klase class1 na klase class2. */ labinVal: function(value) { if(value != undefined) { $(this) .focus() .val(value); } var alt = $(this).attr("alt") || false; var val = $(this).val(); if(!!alt) { return alt == val? "" : val; } return val; } }); })(jQuery);