让IE下支持Html5的placeholder属性的插件

前端技术 2023/09/07 HTML
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文件里解决 , 以后再研究啦~!

本文地址:https://www.stayed.cn/item/19431

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。