Html5的placeholder属性(IE兼容)实现代码_jquery

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文件里解决 , 以后再研究啦~!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索html5
placeholder
placeholder兼容ie8、placeholder兼容ie、placeholder兼容ie9、ie9不兼容placeholder、ie8不兼容placeholder,以便于您获取更多的相关知识。

时间: 2024-10-29 16:10:25

Html5的placeholder属性(IE兼容)实现代码_jquery的相关文章

jQuery第三课 修改元素属性及内容的代码_jquery

1. 操作属性 上文介绍了如何筛选到需要的元素.得到了元素之后就要对其进行操作.一个常见的需求是遍历得到的元素集,对每一个元素进行一个操作.jQuery提供的函数是 each(iterator),其中iterator是一个函数,接受一个整数作为参数,表示第几个元素.看一个简单的例子. 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery Operatio

jQuery选择没有colspan属性的td的代码_jquery

复制代码 代码如下: $("#tableName td:not([colspan])") 下面是一些补充资料:filter()和not(): <script type="text/javascript"> $(document).ready(function() { //输出 hello alert($("p").filter(".selected").html()); //输出 How are you? aler

html5中placeholder兼容js代码

在做项目时,特别对于登录,注册一些重要提示,一般都是使用placeholder属性,可以实现输入时提示信息消失,失去焦点后提示信息显示,只是这个属性也存在不够兼容: 下面的代码可以尝试去用jQuery来完成不支持placeholder的时候. 注意:对于密码框需要单独进行处理,另外,input 框里的文字样式可能需要另加修改. 自己可以在这段代码的基础上进行改善,以达到自己需要的效果. $(function() { // 如果不支持placeholder,用jQuery来完成 if(!isSup

js兼容的placeholder属性详解_javascript技巧

作为一个.net后台开发的程序猿,博客里既然大多都是前端相关的博文.是不是该考虑换方向了,转前端开发得了 ... 小小吐槽一下,近期受该不该跳槽所困惑,我有选择困难症! 继续前端,这次说一下输入框 placeholder 这个属性. html5 的新属性,就是在输入框没输入值的时候,显示的提示文字(自己的理解),例如: 貌似很好用,但也只能在支持 html 的浏览器版本中显示,而对于不能支持的浏览器版本,让我这种极力追求完美的开发者来说是很不舒服的一件事. 上网找了很多资料,有很多大牛人都已经有

HTML5的hidden属性

我们已经知道了很多HTML5新增的属性,比如placeholder.download.autofocus等,还有个新的可能会常用的属性hidden,也是蛮好用的,这里简单介绍下~~ 用法很简单: 1 2 3 <div hidden> You can't see me! </div> 这个属性的表现类似css的display:none,用了这个属性后,元素会被隐藏,块级元素也会折叠起来不再占位,和visible:hidden不一样.所以,对于不支持HTML5的浏览器来说,也可以做下简

ie placeholder属性的兼容性问题解决方法

 html 5 有个很棒的属性,placeholder,在鼠标聚焦到上面时候,提示文字会消失,失去焦点之后,又会出现: 但是在不支持html5的低版本的浏览器中,placeholder属性是无效的,为了解决这个问题,因此,人为的去实现placeholder属性: 代码如下: //placeholder功能实现 var placeholder = { add: function (el) { if (!('placeholder' in document.createElement('input'

实例:html5.js 让HTML5+CSS3制作的网站兼容ie6,7,8浏览

今天下载了html5.js插件,然后用html5+css3制作了个简单的网页布局,测试一下这个html5.js插件是否可以兼容ie6,7,8浏览器.做好之后用IETester在IE6.7.8这3个版本测试了一下,的确可行.这样也为以后用html5+css3建设网站提供了可行性. ie678浏览器演示效果 HTML5代码效果图 CSS3效果图 下载:html5+css3兼容ie678浏览器案例

iOS应用开发中使UITextField实现placeholder属性的方法_IOS

我们都知道iOS开发中的UITextField有个placeholder属性,placeholder可以很方便引导用户输入.但是UITextView却没有placeholder属性. 一.猥琐的方法 如何让UITextView也有placeholder功能呢?今天给各位分享一个比较猥琐的做法.思路大概是这样的: 把UITextView的text当placeholder使用. 在开始编辑的代理方法里清除placeholder. 在结束编辑的代理方法里在设置placeholder. 实现方法: 1.

让低版本浏览器支持input的placeholder属性(js方法)_javascript技巧

复制代码 代码如下: var doc = window.document, input = doc.createElement('input'); if( typeof input['placeholder'] == 'undefined' ) // 如果不支持placeholder属性 { $('input').each(function( ele ) { var me = $(this); var ph = me.attr('placeholder'); if( ph && !me.v