IE9及以下兼容placeholder

在input输入框中使用placeholder,可以给用户起到提醒或指引的作用,但是IE9及以下的IE版本都不支持placeholder,故在此给出一些解决方法:

  1. 使用value来代替(做非空判断时需要排除值等于placeholder值的情况)
  2. 添加标签(需注意如何触发事件)
  3. 引用现成插件 jquery.placeholder.min.js(请自行搜索下载,此处就不多说了)

不管用哪种方法,我们都要先判断浏览器是否不支持placeholder,不支持的时候我们才需要处理

function placehSupport() {
   return ‘placeholder‘ in document.createElement(‘input‘)  ;
}

1.

<body>
    <input id="title" type="text" placeholder="请输入标题">
<script src="jquery-1.11.3.js"></script>
<script>
    $(function(){
        function placehSupport() {
            return ‘placeholder‘ in document.createElement(‘input‘);
        }
        if(!placehSupport){  // 判断浏览器是否支持 placeholder
      var placeVal = $(‘input#title‘).attr(‘placeholder‘);       $(‘input#title‘).val(placeVal);       $(‘input#title‘).focus(function(){         if($.trim($(‘input#title‘).val())==placeVal ) {           $(‘input#title‘).val(‘‘);         }       });       input.blur(function(){         if($.trim($(‘input#title‘).val())==‘‘) {            $(‘input#title‘).val(placeVal );          }
            });
        }
    });
</script>
</body>

2.

<body>
<div class="input-box">
    <input class="input1" type="text" placeholder="请输入标题">
</div>
<div class="input-box">
    <input class="input2" type="text" placeholder="请输入文章">
</div>
<script src="jquery-1.11.3.js"></script>
<script>
    function placeholderSupport() {
        return ‘placeholder‘ in document.createElement(‘input‘);
    }
    if(!placeholderSupport()){   // 判断浏览器是否支持 placeholder
        $("input[placeholder]").each(function(){
            var _this = $(this);
            var left = _this.css("padding-left");
            _this.parent().append(‘<span class="placeholder" data-type="placeholder" style="left: ‘+left+‘">‘+_this.attr("placeholder")+‘</span>‘);
            if(_this.val() != ""){
                _this.parent().find("span.placeholder").hide();
            }
            else{
                _this.parent().find("span.placeholder").show();
            }
        }).on("focus", function(){
            $(this).parent().find("span.placeholder").hide();
        }).on("blur", function(){
            var _this = $(this);
            if(_this.val() != ""){
                _this.parent().find("span.placeholder").hide();
            }
            else{
                _this.parent().find("span.placeholder").show();
            }
        });
        // 点击表示placeholder的标签相当于触发input
        $("span.placeholder").on("click", function(){
            $(this).hide();
            $(this).siblings("[placeholder]").trigger("click");
            $(this).siblings("[placeholder]").trigger("focus");
        });
    }
})
</script>
</body>

原文地址:https://www.cnblogs.com/jingjing-blog/p/8177530.html

时间: 2024-08-27 22:42:35

IE9及以下兼容placeholder的相关文章

兼容placeholder

众所周知.IE9以下不兼容placeholder属性,因此自己定义了一个jQuery插件placeHolder.js.以下为placeHolder.js的代码: /** * 该控件兼容IE9下面,专门针对IE9下面不支持placeholder属性所做 * Author: quranjie * Date:2014-09-26 */ $(function() { // 假设不支持placeholder,用jQuery来完毕 if(!isSupportPlaceholder()) { // 遍历全部i

【jquery】基于 jquery 实现 ie 浏览器兼容 placeholder 效果

placeholder 是 html5 新增加的属性,主要提供一种提示(hint),用于描述输入域所期待的值.该提示会在输入字段为空时显示,并会在字段获得焦点时消失.placeholder 属性适用于以下类型的 input 标签:text, search, url, telephone, email 以及 password. 我们先看下在谷歌浏览器中的效果,如图所示: 获得焦点时: 输入字段: 因为是 html5 属性,自然低版本的浏览器比如 ie6-8 不兼容.下面就介绍下如何在低版本浏览器中

让ie也兼容placeholder

<!doctype html><html><head><meta charset="utf-8"><title>让ie也兼容placeholder</title><style>    input::-moz-placeholder{ color:#00f;}    ::-webkit-input-placeholder{ color:#00f;}</style><script src=

html5的placeholder属性(IE如何兼容placeholder属性)

界面UI推荐 jquery html5 实现placeholder兼容password  IE6 html5的placeholder属性(IE如何兼容placeholder属性) 2013-01-05 10:26:06|  分类: web学习 |  标签:html  js  ie  placeholder  |举报 |字号大中小 订阅 placeholder属性,IE对其的支持表示无奈,firefox.google chrome表示毫无压力. HTML5对Web Form做了许多增强,比如inp

ie9以下浏览器不兼容placeholder的解决方案

html结构如下: <form action="post" class="xz-form" id="xz-form"> <div id="validate" class="xz-validate-tip"></div> <div class="xz-userName"> <input class="xz-inputName&

IE8兼容placeholder的方案

用JavaScript解决Placeholder的IE8兼容问题 placeholder属性是HTML5新添加的属性,当input或者textarea设置了该属性后,该值的内容将作为灰色提示显示在文本框中,当文本框获得焦点时,提示文字消失,placeholder可作为输入框的提示文案 如图: placeholder是常用的属性,它使得input框内有很友好的提示效果.高版本浏览器都支持placeholder属性,但IE9以下版本的浏览器并不支持这一属性.这里用JavaScript实现添加对浏览器

解决swiper在ie9以下不兼容问题

之前用了swiper3做焦点图,结果发现在ie8下不兼容,然后换来了swiper2,发现还是不兼容 swiper2在ie9以下没有transition效果,所以自动降级成了js动画,但是这个swiper2写的有问题,焦点图切换的速度没有用,速度特别快,而且点击一次之后自动轮播也消失了. 于是想起了一个办法,在ie9以上用swiper2,ie9以下用其它焦点图框架,就是判断浏览器,然后调用不同的框架. 样式的话,不同的浏览器在焦点图父元素上加上不同的class名,这样会对应不同的class名来找到

【工作笔记五】html5的placeholder属性(IE如何兼容placeholder属性)

placeholder属性,IE对其的支持表示无奈,firefox.google chrome表示毫无压力. HTML5对Web Form做了许多增强,比如input新增的type类型.Form Validation等.Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失.以前要实现这效果都是用JavaScript来控制才能实现: <input id="t1" 

input事件在ie9以下不兼容问题完美解决

上周四好不容易加了几天班把刚接手的一个pc页面做完,周五同事说要兼容ie7~ie9,结果在上面一跑,输入都没法输入. 我的需求是用6个span作为虚拟的密码输入框,实际上是用一个藏在页面里的input来实现输入的.如下图 上面是我要实现的页面,和页面结构dom,就是点击span的的父节点div的时候,要让input获取焦点.左边是input,为了给大家展示就先不藏起来了,对了,千万别用display:none来隐藏input,否则无法获取焦点. 先来给大家复习一下input标签的所有事件: 1.