html5中文学习网

您的位置: 首页 > html5教程 > 高级应用 » 正文

让IE下支持Html5的placeholder属性的插件_html5教程技巧

[ ] 已经帮助:人解决问题
Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失
HTML5对Web Form做了许多增强,比如input新增的type类型、Form Validation等。 evuHTML5中文学习网 - HTML5先行者学习网
evuHTML5中文学习网 - HTML5先行者学习网
Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。以前要实现这效果都是用JavaScript来控制才能实现 , firefox、google chrome等表示对其支持 , 唯独IE存在违和感啊! evuHTML5中文学习网 - HTML5先行者学习网
evuHTML5中文学习网 - HTML5先行者学习网
例如: <input id="t1" type="text" placeholder="请输入文字" /> evuHTML5中文学习网 - HTML5先行者学习网
evuHTML5中文学习网 - HTML5先行者学习网
介绍一个超强的让IE下支持placeholder的属性插件,同时也兼容其他不支持placeholder的浏览器,代码如下: evuHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
evuHTML5中文学习网 - HTML5先行者学习网
$(document).ready(function(){ evuHTML5中文学习网 - HTML5先行者学习网
var doc=document, evuHTML5中文学习网 - HTML5先行者学习网
inputs=doc.getElementsByTagName('input'), evuHTML5中文学习网 - HTML5先行者学习网
supportPlaceholder='placeholder'in doc.createElement('input'), evuHTML5中文学习网 - HTML5先行者学习网
placeholder=function(input){ evuHTML5中文学习网 - HTML5先行者学习网
var text=input.getAttribute('placeholder'), evuHTML5中文学习网 - HTML5先行者学习网
defaultValue=input.defaultValue; evuHTML5中文学习网 - HTML5先行者学习网
if(defaultValue==''){ evuHTML5中文学习网 - HTML5先行者学习网
input.value=text evuHTML5中文学习网 - HTML5先行者学习网
} evuHTML5中文学习网 - HTML5先行者学习网
input.onfocus=function(){ evuHTML5中文学习网 - HTML5先行者学习网
if(input.value===text) evuHTML5中文学习网 - HTML5先行者学习网
{ evuHTML5中文学习网 - HTML5先行者学习网
this.value='' evuHTML5中文学习网 - HTML5先行者学习网
} evuHTML5中文学习网 - HTML5先行者学习网
}; evuHTML5中文学习网 - HTML5先行者学习网
input.onblur=function(){ evuHTML5中文学习网 - HTML5先行者学习网
if(input.value===''){ evuHTML5中文学习网 - HTML5先行者学习网
this.value=text evuHTML5中文学习网 - HTML5先行者学习网
} evuHTML5中文学习网 - HTML5先行者学习网
} evuHTML5中文学习网 - HTML5先行者学习网
}; evuHTML5中文学习网 - HTML5先行者学习网
if(!supportPlaceholder){ evuHTML5中文学习网 - HTML5先行者学习网
for(var i=0,len=inputs.length;i<len;i++){ evuHTML5中文学习网 - HTML5先行者学习网
var input=inputs[i], evuHTML5中文学习网 - HTML5先行者学习网
text=input.getAttribute('placeholder'); evuHTML5中文学习网 - HTML5先行者学习网
if(input.type==='text'&&text){ evuHTML5中文学习网 - HTML5先行者学习网
placeholder(input) evuHTML5中文学习网 - HTML5先行者学习网
} evuHTML5中文学习网 - HTML5先行者学习网
} evuHTML5中文学习网 - HTML5先行者学习网
} evuHTML5中文学习网 - HTML5先行者学习网
}); evuHTML5中文学习网 - HTML5先行者学习网
evuHTML5中文学习网 - HTML5先行者学习网
直接把代码复制下来,保存成一个js文件引用即可,不用再做任何处理,超级便利! evuHTML5中文学习网 - HTML5先行者学习网
evuHTML5中文学习网 - HTML5先行者学习网
ex : 这样做的确能让IE的Input显示placeholder属性,但是如果页面上只有一个input还好,如果是多个input,如果出现input没有填入任何值的话,那么它的空input会自动将placeholder的值填进value里面,从而发生错误.例如: evuHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
evuHTML5中文学习网 - HTML5先行者学习网
<input type="text" placeholder="输入商品编码" name="goodscode" id="goodscode" value="123" /> evuHTML5中文学习网 - HTML5先行者学习网
<input type="text" placeholder="输入商品名称" name="goodsname" id="goodsname" value="输入商品名称" /> evuHTML5中文学习网 - HTML5先行者学习网
evuHTML5中文学习网 - HTML5先行者学习网
解决办法就是在后台自己判断啦 , 也许能在上面的js文件里解决 , 以后再研究啦~!
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助