HTML5对Web Form做了许多增强,比如input新增的type类型、Form Validation等。
Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。以前要实现这效果都是用JavaScript来控制才能实现 , firefox、google chrome等表示对其支持 , 唯独IE存在违和感啊!
例如: <input id="t1" type="text" placeholder="请输入文字" />
介绍一个超强的让IE下支持placeholder的属性插件,同时也兼容其他不支持placeholder的浏览器,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
$(document).ready( function (){
var doc=document,
inputs=doc.getElementsByTagName( 'input' ),
supportPlaceholder= 'placeholder' in doc.createElement( 'input' ),
placeholder= function (input){
var text=input.getAttribute( 'placeholder' ),
defaultValue=input.defaultValue;
if (defaultValue== '' ){
input.value=text
}
input.onfocus= function (){
if (input.value===text)
{
this .value= ''
}
};
input.onblur= function (){
if (input.value=== '' ){
this .value=text
}
}
};
if (!supportPlaceholder){
for ( var i=0,len=inputs.length;i<len;i++){
var input=inputs[i],
text=input.getAttribute( 'placeholder' );
if (input.type=== 'text' &&text){
placeholder(input)
}
}
}
});
|
直接把代码复制下来,保存成一个js文件引用即可,不用再做任何处理,超级便利!
ex : 这样做的确能让IE的Input显示placeholder属性,但是如果页面上只有一个input还好,如果是多个input,如果出现input没有填入任何值的话,那么它的空input会自动将placeholder的值填进value里面,从而发生错误.例如:
1
2
|
<input type= "text" placeholder= "输入商品编码" name= "goodscode" id= "goodscode" value= "123" />
<input type= "text" placeholder= "输入商品名称" name= "goodsname" id= "goodsname" value= "输入商品名称" />
|
解决办法就是在后台自己判断啦 , 也许能在上面的js文件里解决 , 以后再研究啦~!