我借鉴了上面的答案,并使其向后兼容旧的现代浏览器以及IE -
使用以下代码,确保为输入字段设置了“值”和“占位符”属性。在我的特定情况下,我需要支持IE变种。
说明 - 如果浏览器支持占位符,则删除输入值。如果没有,旧的浏览器将忽略占位符属性,下面的js模仿默认的占位符行为。此脚本还将忽略CSRF的任何auth令牌(在我的表单中获取auth令牌值时会出现错误,导致我的Rails应用程序中出现CSRF警告)。
另一种简化脚本本身的方法是为每个特别想要使用此脚本的输入分配一个类,并相应地更新true语句(尽管下面的方法有点干)。
var placeholderSupported = !!( 'placeholder' in document.createElement('input') );
if (placeholderSupported === true){
$('input:not([type="submit"], [name="authenticity_token"])').val('');
} else{
$('input')
.focus(function() {
if (this.value === this.defaultValue) {
this.value = '';
}
})
.blur(function() {
if (this.value === '') {
this.value = this.defaultValue;
}
});
}