Html5的placeholder属性(IE兼容)实现代码
作者:bea
HTML5对Web Form做了许多增强,比如input新增的type类型、Form Validation等。 Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。以前要实现这效果都是用JavaScript来控制才能实现 , firefox、google chrome等表示对其支持 , 唯独IE存在违和感啊! 例如: <input id="t1" t
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文件里解决 , 以后再研究啦~!
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 用js提交表单解决一个页面有多个提交按钮的问题
- 浅析JQuery中的html(),text(),val()区别
- 如何判断微信内置浏览器(通过User Agent实现)
- 使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
- 上传图片js判断图片尺寸和格式兼容IE
- 影响jQuery使用的14个方面
- 自编jQuery插件实现模拟alert和confirm
- Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
- JQuery $.each遍历JavaScript数组对象实例
- 关闭页面时window.location事件未执行的原因分析及解决方案
- 用js通过url传参把数据从一个页面传到另一个页面
- 用jquery实现动画跳到顶部和底部(这个比较简单)
- Javascript让DEDECMS告别手写Tag
- 通过JS来动态的修改url,实现对url的增删查改
- 一个不错的仿携程自定义数据下拉选择select
- 原生javascript实现拖动元素示例代码
- 使用text方法获取Html元素文本信息示例
- textarea不能通过maxlength属性来限制字数的解决方法
- 超级好用的jQuery圆角插件 Corner速成