让IE下支持Html5的placeholder属性的插件
程序员文章站
2024-02-10 13:52:46
Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失... 14-09-02...
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的浏览器,代码如下:
$(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里面,从而发生错误.例如:
<input type="text" placeholder="输入商品编码" name="goodscode" id="goodscode" value="123" />
<input type="text" placeholder="输入商品名称" name="goodsname" id="goodsname" value="输入商品名称" />
解决办法就是在后台自己判断啦 , 也许能在上面的js文件里解决 , 以后再研究啦~!
placeholder是html5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。以前要实现这效果都是用javascript来控制才能实现 , firefox、google chrome等表示对其支持 , 唯独ie存在违和感啊!
例如: <input id="t1" type="text" placeholder="请输入文字" />
介绍一个超强的让ie下支持placeholder的属性插件,同时也兼容其他不支持placeholder的浏览器,代码如下:
复制代码
代码如下:$(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里面,从而发生错误.例如:
复制代码
代码如下:<input type="text" placeholder="输入商品编码" name="goodscode" id="goodscode" value="123" />
<input type="text" placeholder="输入商品名称" name="goodsname" id="goodsname" value="输入商品名称" />
解决办法就是在后台自己判断啦 , 也许能在上面的js文件里解决 , 以后再研究啦~!
推荐阅读
-
让IE下支持Html5的placeholder属性的插件
-
基于jQuery的让非HTML5浏览器支持placeholder属性的代码_jquery
-
让低版本浏览器支持input的placeholder属性(js方法)_javascript技巧
-
让低版本浏览器支持input的placeholder属性(js方法)_javascript技巧
-
让IE支持HTML5的方法
-
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
-
让IE支持HTML5的方法
-
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
-
IE下支持文本框和密码框placeholder效果的JQuery插件分享
-
让IE下支持Html5的placeholder属性的插件