我正在尝试在我的网站上获得我认为非常好的HTML5 - input
字段的占位符属性。
但我在我的网站上获得它的方式严重恶化。因为我跳过了字段的标签,并使用占位符作为标签。
目前我有几个带占位符的输入字段,它们看起来像这样:
<input placeholder="hereismyplaceholder" />
但是,如果HTML5占位符支持不可用,我希望所有带占位符的输入字段都更改为此。显然,使用等效的占位符文本:
<input onblur="if (this.value == '') {this.value = 'hereismyplaceholder';}" onfocus="if (this.value == 'hereismyplaceholder') {this.value = '';}" value="hereismyplaceholder" />
所以我已经进入Modernizr,我正在使用以下javascript来检测占位符:
if (Modernizr.input.placeholder) {
} else {
// BUT I NEED SOMETHING IN HERE
}
但我不知道现在该做什么。因为我没有使用javascript的经验,所以我不是开发人员。
最简单的解决方案是最好的。我并不喜欢好的做法,我只想让它现在起作用。
答案 0 :(得分:0)
这里有一个例子,http://www.modernizr.com/docs/#input
对于您的特定用例,代码应为
// if placeholder isn't supported:
if (!Modernizr.input.placeholder){
// use a input hint script
setInputHint(document.getElementById('idoftheinputelement'),'hereismyplaceholder');
}
答案 1 :(得分:0)
你没有要求jQuery,但我不想担心跨浏览器问题:
if (!Modernizr.input.placeholder) {
$("input[type=text]")
.focus(function(e){
if (this.value == $(this).attr('placeholder')) {
this.value = '';
}
})
.blur(function(e){
setPlaceholder(this);
}).each(function(index, el){
setPlaceholder(el);
});
function setPlaceholder(el) {
if (el.value == '') {
el.value = $(el).attr('placeholder');
}
}
}