当前位置: 首页 > 编程笔记 >

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

淳于乐池
2023-03-14
本文向大家介绍Html5的placeholder属性(IE兼容)实现代码,包括了Html5的placeholder属性(IE兼容)实现代码的使用技巧和注意事项,需要的朋友参考一下

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如何在兼容IE?相关面试题,主要包含被问及placeholder如何在兼容IE?时的应答技巧和注意事项,需要的朋友参考一下 $(function(){ // 兼容IE9下的placeholder function placeholderSupport() { return 'placeholder' in document.createElement('inpu

  • 问题内容: 检索具有特定类的元素数组的最佳方法是什么? 我会使用document.getElementsByClassName,但IE不支持它。 …但是IE仍然说: 对象不支持此属性或方法 有什么想法,更好的方法,错误修复? 我不希望使用任何涉及jQuery或其他“笨拙的javascript”的解决方案。 我知道了! 正如@joe提到的,该函数不是的方法。 因此,工作代码如下所示: …此外, 如果

  • 概览 本章描述了IE在处理自定义的HTML属性和标签时的一些独特之处。如果你要让你的AngularJS应用兼容IE8和IE8以下的版本的话,你需要仔阅读本章。 简易版 要让你的AngularJS应用在IE中正常运行你必须: 确保JSON字符串能被正常解析(IE7需要),你可以使用JSON2或者JSON3来实现。 你不能使用自定义的元素标签,如<ng:view>(你只能使用属性的形式,如<div n

  • 本文向大家介绍兼容最新firefox、chrome和IE的javascript图片预览实现代码,包括了兼容最新firefox、chrome和IE的javascript图片预览实现代码的使用技巧和注意事项,需要的朋友参考一下 javascript实现客户端file选择文件后img标签加载客户端图片实现图片预览。 测试浏览器:firefox6,firefox12,chrome 25.0.1364.17

  • 对于响应式布局,有一点需要注意,就是IE8 及以下的版本不支持媒体查询,这意味着它们只会呈现媒体查询以外的样式,即基准样式。并且,它们也不支持HTML5 的 header、main、aside、footer 等新元素。 对于IE8及更早的版本,可以什么都不做,让网站显示最基本的版本,或者为它们单独创建一个样式表,让它们显示网站最宽的版本。 当然,大多数人还是倾向于让页面具有响应式的效果。这也好办,

  • 本文向大家介绍怎么在IE8及以下实现HTML5的兼容?相关面试题,主要包含被问及怎么在IE8及以下实现HTML5的兼容?时的应答技巧和注意事项,需要的朋友参考一下 通过创建元素来支持! 我记得有个专门的这种js插件