zoukankan      html  css  js  c++  java
  • placeholder IE兼容,显示password

    从网上找了很多关于placeholder IE兼容性的问题,下边的这个js方法可以显示password。

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Placeholder Polyfill Test</title>
    </head>
    <body>
    
    <form>
    <input type="password"placeholder="password">
    <input type="password"placeholder="confirm password">
    </form>
    
    <script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
    <script>
    
    /* placeholder polyfill plugin */
    
    /*! http://mths.be/placeholder v2.0.7 by @mathias */
    (function(f, h, $) {
        var a='placeholder'in h.createElement('input'), d='placeholder'in h.createElement('textarea'), i=$.fn, c=$.valHooks, k, j;
    
        if(a&&d) {
            j=i.placeholder=function() {
                return this
            }
            ;
            j.input=j.textarea=true
        }
        else {
            j=i.placeholder=function() {
                var l=this;
    
                l.filter((a?'textarea':':input')+'[placeholder]').not('.placeholder').bind( {
                    'focus.placeholder':b, 'blur.placeholder':e
                }
                ).data('placeholder-enabled', true).trigger('blur.placeholder');
                return l
            }
            ;
            j.input=a;
            j.textarea=d;
    
            k= {
                get:function(m) {
                    var l=$(m);
                    return l.data('placeholder-enabled')&&l.hasClass('placeholder')?'':m.value
                }
                , set:function(m, n) {
                    var l=$(m);
    
                    if(!l.data('placeholder-enabled')) {
                        return m.value=n
                    }
                    if(n=='') {
                        m.value=n;
    
                        if(m!=h.activeElement) {
                            e.call(m)
                        }
                    }
                    else {
                        if(l.hasClass('placeholder')) {
                            b.call(m, true, n)||(m.value=n)
                        }
                        else {
                            m.value=n
                        }
                    }
                    return l
                }
            }
            ;
            a||(c.input=k);
            d||(c.textarea=k);
    
            $(function() {
                $(h).delegate('form', 'submit.placeholder', function() {
                    var l=$('.placeholder', this).each(b);
    
                    setTimeout(function() {
                        l.each(e)
                    }
                    , 10)
                }
                )
            }
            );
    
            $(f).bind('beforeunload.placeholder', function() {
                $('.placeholder').each(function() {
                    this.value=''
                }
                )
            }
            )
        }
        function g(m) {
            var l= {
            }
            , n=/^jQueryd+$/;
    
            $.each(m.attributes, function(p, o) {
                if(o.specified&&!n.test(o.name)) {
                    l[o.name]=o.value
                }
            }
            );
            return l
        }
        function b(m, n) {
            var l=this, o=$(l);
    
            if(l.value==o.attr('placeholder')&&o.hasClass('placeholder')) {
                if(o.data('placeholder-password')) {
                    o=o.hide().next().show().attr('id', o.removeAttr('id').data('placeholder-id'));
    
                    if(m===true) {
                        return o[0].value=n
                    }
                    o.focus()
                }
                else {
                    l.value='';
                    o.removeClass('placeholder');
                    l==h.activeElement&&l.select()
                }
            }
        }
        function e() {
            var q, l=this, p=$(l), m=p, o=this.id;
    
            if(l.value=='') {
                if(l.type=='password') {
                    if(!p.data('placeholder-textinput')) {
                        try {
                            q=p.clone().attr( {
                                type: 'text'
                            }
                            )
                        }
                        catch(n) {
                            q=$('<input>').attr($.extend(g(this) {
                                type: 'text'
                            }
                            ))
                        }
                        q.removeAttr('name').data( {
                            'placeholder-password':true, 'placeholder-id':o
                        }
                        ).bind('focus.placeholder', b);
    
                        p.data( {
                            'placeholder-textinput':q, 'placeholder-id':o
                        }
                        ).before(q)
                    }
                    p=p.removeAttr('id').hide().prev().attr('id', o).show()
                }
                p.addClass('placeholder');
                p[0].value=p.attr('placeholder')
            }
            else {
                p.removeClass('placeholder')
            }
        }
    }
    (this, document, jQuery));
    </script>
    <script> $('input').placeholder();
    </script>
    </body>
    </html>

    转自这里 http://zach.lysobey.com/files/placeholder/index.html

  • 相关阅读:
    LeetCode 623. Add One Row to Tree
    LeetCode 894. All Possible Full Binary Trees
    LeetCode 988. Smallest String Starting From Leaf
    LeetCode 979. Distribute Coins in Binary Tree
    LeetCode 814. Binary Tree Pruning
    LeetCode 951. Flip Equivalent Binary Trees
    LeetCode 426. Convert Binary Search Tree to Sorted Doubly Linked List
    LeetCode 889. Construct Binary Tree from Preorder and Postorder Traversal
    LeetCode 687. Longest Univalue Path
    LeetCode 428. Serialize and Deserialize N-ary Tree
  • 原文地址:https://www.cnblogs.com/futai/p/5105997.html
Copyright © 2011-2022 走看看