placeholder 兼容 IE

placeholder 是 html5 的新属性,仅支持 html5 的浏览器才支持 placeholder,目前最新的 FF、Chrome、Safari、Opera 以及 IE10 都支持,IE6-IE9 都不支持!

placeholder 在各个浏览器下基本都是淡灰色显示,不同的地方在于 FF 和 Chrome 中,输入框获得焦点时,placeholder 文字没有变化,只有当输入框中输入了内容时,placeholder 文字才会消失;而在 Safari 和 IE10 下,当输入框获得焦点时,placeholder 文字便立即消失。

js 解决方法:

if( !("placeholder" in document.createElement("input")) ){
    $("input[placeholder],textarea[placeholder]").each(function(){
        var that = $(this),
            text= that.attr("placeholder");
        if(that.val()===""){
            that.val(text).addClass("placeholder");
        }
        that.focus(function(){
            if(that.val()===text){
                that.val("").removeClass("placeholder");
            }
        })
        .blur(function(){
            if(that.val()===""){
                that.val(text).addClass("placeholder");
            }
        })
        .closest("form").submit(function(){
            if(that.val() === text){
                that.val("");
            }
        });
    });
}

在页面里引入 jquery,再执行上面这段代码即可!

例子:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>placeholder兼容</title>
    </head>

    <body>
        <input type="text" placeholder="我是提示文字">

        <!-- 这里 src 改成你自己的 jquery 路径 -->
        <script type="text/javascript" src="../scripts/common/jquery-1.8.3.min.js"></script>
        <script type="text/javascript">
            $(function() {
                if( !(‘placeholder‘ in document.createElement(‘input‘)) ){   

                    $(‘input[placeholder],textarea[placeholder]‘).each(function(){
                          var that = $(this),
                              text= that.attr(‘placeholder‘);
                          if(that.val()===""){
                            that.val(text).addClass(‘placeholder‘);
                          }
                          that.focus(function(){
                            if(that.val()===text){
                                  that.val("").removeClass(‘placeholder‘);
                            }
                          })
                          .blur(function(){
                            if(that.val()===""){
                                  that.val(text).addClass(‘placeholder‘);
                            }
                          })
                          .closest(‘form‘).submit(function(){
                            if(that.val() === text){
                                  that.val(‘‘);
                            }
                          });
                    });
                  }
            });
        </script>
    </body>
</html>

到此,placeholder 兼容问题已解决!

时间: 2024-10-11 15:14:26

placeholder 兼容 IE的相关文章

IE9以下 placeholder兼容

//input placeholder兼容!(function ($, doc, win) { $.fn.placeholder = function () { var i = doc.createElement('input'), placeholdersupport = 'placeholder' in i; if (!placeholdersupport) { var inputs = $(this); inputs.each(function () { var input = $(thi

placeholder兼容

<!------------placeholder兼容-------------><script type="text/javascript">    $(function () {        if (!placeholderSupport()) {   // 判断浏览器是否支持 placeholder            $('[placeholder]').focus(function () {                var input = $

☆☆☆☆☆Placeholder兼容各大浏览器的例子☆☆☆☆☆

<!doctype html> <html> <head> <meta charset="utf-8"> <title>Placeholder兼容各大浏览器的例子</title> <script src="jquery-1.8.0.min.js"></script> </head> <body> <form> <div> &

IE placeholder兼容

对于placeholder兼容问题 IE系列的大部分不兼容 使用JQ插件解决这个问题,确实用法很简单 jS下载地址http://www.ijquery.cn/js/jquery.placeholder.min.js <script type="text/javascript" src="http://www.ijquery.cn/js/jquery-1.7.2.min.js"></script> <script type="t

input placeholder 兼容问题

placeholder是html5出的新特性,ie9以下是不兼容的, 那么为了兼容ie9  我们需要对他做处理 //jq的处理方式$(function(){ jQuery('[placeholder]').focus(function() { var input = jQuery(this); if (input.val() == input.attr('placeholder')) { input.val(''); input.removeClass('placeholder'); } }).

input placeholder兼容ie10以下

代码如下: if( /msie/.test(navigator.userAgent.toLowerCase()) && $.browser.version.slice(0,3) < 10) { $('input[placeholder]').each(function(){ var input = $(this); $(input).val(input.attr('placeholder')); $(input).focus(function(){ if (input.val() =

判断浏览器是否支持某些新属性---placeholder兼容问题解决

function is_true(){ return 'placeholder' in document.createElement('input'); } 实例:placeholder在低版本IE浏览器下兼容性解决 <script type="text/javascript"> if( !('placeholder' in document.createElement('input'))){ $('input[placeholder],textarea[placehold

ie9 placeholder兼容

.phcolor{ color:#999;}//css样式 function isPlaceholer(){ var input = document.createElement("input"); return "placeholder" in input; }; function placeholder(input){ var text = input.attr('placeholder'), defaultValue = input.defaultValue;

jquery解决各浏览器placeholder兼容

$(function(){ if(!placeholderSupport()){   // 判断浏览器是否支持 placeholder     $('[placeholder]').focus(function() {         var input = $(this);         if (input.val() == input.attr('placeholder')) {             input.val('');             input.removeClas