2011-11-04 213 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=""屬性。