placeholder 属性的兼容性

placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或输入内容)时,提示文字消失。

但是在不支持html5的低版本的浏览器中,placeholder属性是无效的,例如ie9及以下的ie浏览器不兼容这个属性。下面介绍placeholder兼容性的处理

在页面添加如下脚本

$(function() {
  // 如果不支持placeholder,用jQuery来完成
  if(!isSupportPlaceholder()) {
    // 遍历所有input对象, 除了密码框
    $(‘input‘).not("input[type=‘password‘]").each(
      function() {
        var self = $(this);
        var val = self.attr("placeholder");
        input(self, val);
      }
    );
    
    /**//* 对password框的特殊处理
     * 1.创建一个text框 
     * 2.获取焦点和失去焦点的时候切换
     */
    $(‘input[type="password"]‘).each(
      function() {
        var pwdField    = $(this);  
        var pwdVal      = pwdField.attr(‘placeholder‘);  
        var pwdId       = pwdField.attr(‘id‘);  
        // 重命名该input的id为原id后跟1
        pwdField.after(‘<input id="‘ + pwdId +‘1" type="text" value=‘+pwdVal+‘ autocomplete="off" />‘);  
        var pwdPlaceholder = $(‘#‘ + pwdId + ‘1‘);  
        pwdPlaceholder.show();  
        pwdField.hide();  
          
        pwdPlaceholder.focus(function(){  
          pwdPlaceholder.hide();  
          pwdField.show();  
          pwdField.focus();  
        });  
          
        pwdField.blur(function(){  
          if(pwdField.val() == ‘‘) {  
            pwdPlaceholder.show();  
            pwdField.hide();  
          }  
        });  
      }
    );
  }
});

// 判断浏览器是否支持placeholder属性
function isSupportPlaceholder() {
  var input = document.createElement(‘input‘);
  return ‘placeholder‘ in input;
}

// jQuery替换placeholder的处理
function input(obj, val) {
  var $input = obj;
  var val = val;
  $input.attr({value:val});
  $input.focus(function() {
    if ($input.val() == val) {
      $(this).attr({value:""});
    }
  }).blur(function() {
    if ($input.val() == "") {
            $(this).attr({value:val});
    }
  });
}

参考资料:  placeholder兼容性   http://www.studyofnet.com/news/1022.html

时间: 2024-10-24 23:06:48

placeholder 属性的兼容性的相关文章

解决HTML5中placeholder属性兼容性的JQuery插件

//调用方法 $(function () {   $(".pHolder").jason(); }); //HTML代码 <input type="text" class="pHolder" placeholder="请输入姓名" /> //jquery插件 ($.fn.jason = function(a) {    var b = {        focus: "black",      

web开发实例教程:使用placeholder属性进行提示

客户端完成加载页面时,将光标定位到表单的第一个表单域上能够提高用户输入数据的速度.许多搜索引擎通过JavaScript实现了这个功能,而现在,HTML提供了自动聚焦功能,并将其视为语言的一部分. 要使用HTML的自动聚焦功能,你只需在任意表单域中添加autofocus属性即可. 浏览器会把用户光标定位到最后一个设置了autofocus属性的表单域上. 回退 仅需少量JavaScript代码即可检测出是否存在autofocus属性,如果用户浏览器不支持 autofocus属性,则可使用jQuerv

HTML5之placeholder属性以及如何更改placeholder属性中文字颜色

今天在群里看到群友问了一个这样的问题,就是如何更改placeholder属性中文字的颜色,以前用过这属性,却是没更改过颜色,于是便试了试,中途遇到些问题,查找资料后特来总结一下. 熟悉HTML5的人应该都知道,placeholder这个属性是HTML5中新增的属性,该属性的作用是规定可描述输入字段预期值的简短的提示信息,该提示会在用户输入之前显示在输入字段中,会在用户输入字段后消失,有些浏览器则是获得焦点后该提示便消失(如Safari.IE) 适用范围:placeholder 属性适用于下面的

placeholder属性

placeholder属性 是在input输入框内提示内容(内容自定义)如下图所示: position: absolute:绝对定位并且不占位置: relative:相对定位占位置 我们在设置定位时一般是采用 子绝父相 的原则,但是也可以用 子绝父绝 的模式,但是这个时候父级元素就不占位置,脱离标准流...

获取表单的初始值,模拟placeholder属性

input和textarea有一个默认属性defaultValue,即初始值. 即使在页面操作修改了input和textarea的内容,获取到的defaultValue依然是初始值.可通过该值模拟placeholder属性,而不额外添加任何属性,标签之类. js:  以input为例 jq: 完全模拟placeholder,无需添加任何额外属性和标签. textarea标签模拟过程完全一致:

基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转)

效果图:http://code.google.com/p/jquery-placeholder-js/ 演示代码:http://demo.jb51.net/js/2011/jqueryplaceholder/打包下载:http://xiazai.jb51.net/201105/yuanma/jqueryplaceholder.rar 基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转),布布扣,bubuko.com

兼容ie10以下版本的placeholder属性

<script src="${ctx }/js/jquery.placeholder.js" type="text/javascript"></script> $(function() { $('input').placeholder();//兼容ie10下placeholder属性: }); js文件地址

自定义textView,增加placeholder属性

iOS文本输入框有两种:UITextField和UITextView.一般情况下,UITextField可以满足我们开发的需求,输入文字,系统自带placeHolder属性,直接用点语法赋值就可以实现功能需求. 然而,有些时候我们可能会用到UITextView,系统提供的UITextView是没有自带placeHolder属性的.想要实现placeHolder样式有至少两种方法: 1.添加一个label当作placeHolder的载体.实现UITextViewDelegate方法,监听文本输入框

jQuery placeholder插件 让IE也能够支持placeholder属性

jQuery placeholder插件 让IE也能够支持placeholder属性 案例:整搜索框,需要默认占位符为“请输入关键词”,获取焦点时,占位符消失或不可用(不影响正常输入),丢失焦点后,若用户无内容输入,占位符继续出现,继续占位.这种代码我想前端们已经很容易就写出来了吧,现在HTML5原生就有这个“placeholder”属性,效果与上边案例描述的一样(各支持的浏览器内部表现可能不一致,但是作用是一致的),那么这一属性该怎么优雅降级到支持所有现代浏览器呢?答案还是脚本即JavaScr