2011-11-04 151 views
0

我正试图修复这段代码,它在Click上,删除了输入的值,并在Blur上将值返回到输入中。你可以在这里看到我的jsfiddle,看看我的意思是:输入焦点jquery问题

JSfiddle

问题

它似乎对前两个输入工作,但那么剩下的似乎没有做任何事情。它似乎也不适用于textarea。奇怪的行为在这里,但我确定一个Javascript头可以排序这一个。

非常感谢!

回答

0

而现在它的工作原理::-) http://jsfiddle.net/maniator/3Ys7c/3/

使用jQuery的data() attrbute:

jQuery(document).ready(function($) { 
    $("input, textarea").focus(function() { 
     if (!$(this).data('original')) { 
      $(this).data('original', $(this).val()); 
     } 
     if ($(this).val() == $(this).data('original')) { 
      $(this).val('').css({ 
       'color': "#999999", 
       'background-color': '#c6e9ff' 
      }); 
     } 
    }); 
    $("input, textarea").blur(function() { 
     if ($(this).val() == "") { 
      $(this).val($(this).data('original')).css({ 
       'background-color': '#ffffff' 
      }); 
     } 
    }); 
}); 

之所以你的,因为你正在使用this.id其中他们都没有没有工作的。如果你只是使用每个输入的data属性,那么每个输入都知道它应该是什么,不应该是:-)

+0

太棒了!感谢您的解释@Neal :-) – remi90

+0

@ remi90也 - 不要使用'.val(')所针对的attr('value')'。 – Neal

+0

您的欢迎^ _ ^ – Neal

0

或者干脆给你的元素一个id=""属性。