2012-09-21 77 views
3

是否有一個簡單的解決方案,用於在輸入焦點時更改佔位符文本?例如:當輸入是有源更改佔位符文本焦點

<input type="text" placeholder="enter your email address..."> 

<input type="text" placeholder="Join our mailing list!"> 

將成爲此。

+2

請記住,IE9及以下版本不支持「佔位符」,並且某些瀏覽器在輸入焦點時清除文本。 – MrOBrian

回答

15
$('input').focus(function() { 
    $(this).attr('placeholder', 'enter your email address...') 
}).blur(function() { 
    $(this).attr('placeholder', 'Join our mailing list!') 
}) 

http://jsfiddle.net/ByLGs/

+0

如何在用戶點擊其他地方後返回第一個佔位符? – Muli

+0

@Muli您需要添加一個'blur'處理程序,就像上面的代碼段! – undefined

2

你有這個標記 「jQuery的」,所以我假定你打開使用。這裏有一個簡單的方法:

<input type="text" placeholder="Join our mailing list!" title="enter your email address...">​ 
$('input').on('focus', function(){ 
    $(this).data('placeholder', $(this).attr('placeholder')); // Store for blur 
    $(this).attr('placeholder', $(this).attr('title')); 
}).on('blur', function(){ 
    $(this).attr('placeholder', $(this).data('placeholder')); 
});​ 

演示:http://jsfiddle.net/m6j8m/

這可以縮短,但你的想法。通過這種方式,您不必跟蹤JavaScript中的屬性值,這些都在HTML中,因此它是一種萬能的解決方案。如果使用title不符合您的需求,則可以使用data-屬性代替或使用其他屬性。

相關問題