Posted By

akt on 06/29/11


Tagged


Versions (?)

labelInside


 / Published in: jQuery
 

/* .labelInside() jQuery plugin per visualizzare la label in grigetto all'interno del campo author: s.caronia */

  1. (function($){
  2. $.fn.labelInside = function(arguments) {
  3. var defaults = {};
  4. var options = {};
  5. var title;
  6.  
  7. if (typeof(arguments)!="object") {
  8. options=defaults;
  9. options.title=arguments;
  10. } else {
  11. options = $.extend(defaults, arguments);
  12. }
  13. return this.each(function() {
  14. if (options.action=="clean") {
  15. if ($(this).val()==$(this).attr('title')) {
  16. $(this).val("");
  17. }
  18. return this;
  19. }
  20. if ($(this).attr('title')) {
  21. title=$(this).attr('title');
  22. } else {
  23. if (options.title) {
  24. title = options.title;
  25. $(this).attr('title',title);
  26. } else {
  27. title = '';
  28. }
  29. }
  30. defaulIfEmpty($(this), title, options.defaultClass);
  31. $(this).focus(function(){
  32. if ($(this).val()==$(this).attr('title')) {
  33. $(this).val("");
  34. }
  35. });
  36. $(this).keypress(function(event){
  37. if ($(this).val()==$(this).attr('title')) {
  38. $(this).val("");
  39. }
  40. });
  41. $(this).keyup(function(event){
  42. if (event.which!=(9||15))
  43. defaulIfEmpty($(this), $(this).attr('title'), options.defaultClass);
  44. });
  45. $(this).blur(function(){
  46. defaulIfEmpty($(this), $(this).attr('title'), options.defaultClass);
  47. });
  48. $(this).change(function(){
  49. defaulIfEmpty($(this), $(this).attr('title'), options.defaultClass);
  50. });
  51. function defaulIfEmpty(el, ti, dc) {
  52. if (el.nodeName=='textarea') {
  53. if ((el.html()=="") || (el.html(ti))) {
  54. el.html(ti); el.addClass(dc);
  55. } else { el.removeClass(dc);}
  56. } else {
  57. if ((el.val()=="") || (el.val()==ti)) {
  58. el.val(ti); el.addClass(dc);
  59. } else { el.removeClass(dc);}
  60. }
  61. el.attr('title',ti);
  62. }
  63. });
  64. }
  65. }) (jQuery);

Report this snippet  

You need to login to post a comment.