Html5的placeholder属性(IE兼容)实现代码
2023-06-13 09:15:44 时间
HTML5对WebForm做了许多增强,比如input新增的type类型、FormValidation等。
Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。以前要实现这效果都是用JavaScript来控制才能实现,firefox、googlechrome等表示对其支持,唯独IE存在违和感啊!
例如:<inputid="t1"type="text"placeholder="请输入文字"/>
介绍一个超强的让IE下支持placeholder的属性插件,同时也兼容其他不支持placeholder的浏览器,代码如下:
$(document).ready(function(){ vardoc=document, inputs=doc.getElementsByTagName("input"), supportPlaceholder="placeholder"indoc.createElement("input"), placeholder=function(input){ vartext=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(vari=0,len=inputs.length;i<len;i++){ varinput=inputs[i], text=input.getAttribute("placeholder"); if(input.type==="text"&&text){ placeholder(input) } } } });
直接把代码复制下来,保存成一个js文件引用即可,不用再做任何处理,超级便利!
ex:这样做的确能让IE的Input显示placeholder属性,但是如果页面上只有一个input还好,如果是多个input,如果出现input没有填入任何值的话,那么它的空input会自动将placeholder的值填进value里面,从而发生错误.例如:
<inputtype="text"placeholder="输入商品编码"name="goodscode"id="goodscode"value="123"/> <inputtype="text"placeholder="输入商品名称"name="goodsname"id="goodsname"value="输入商品名称"/>
解决办法就是在后台自己判断啦,也许能在上面的js文件里解决,以后再研究啦~!
相关文章
- HTML5实战与剖析之HTMLDocument变化(readyreState属性、兼容模式和head属性)「建议收藏」
- 【说站】python类属性和实例属性的区别
- 【Python模块2】- 模块搜索顺序、内置属性、开发原则
- Java反射,通过对象获取属性及属性值
- Linux下的i属性分析(linuxi属性)
- CSS中的EM属性之弹性布局详解编程语言
- 利用HTML5和MySQL实现数据交换(html5连接mysql)
- 兼容性探究HTML5与Linux的兼容性(html5与linux)
- Linux文件基本属性
- ecshop批量上传(加入自定义属性)
- .NET中的属性用法分析
- html文档中的location对象属性理解及常见的用法