Jquery占位符插件将密码显示为文本

时间:2012-11-23 10:26:37

标签: javascript jquery

对于登录表单,我试图在没有任何标签的情况下构建它并使用占位符文本,以便用户知道要输入的内容。

问:如何修改以下代码,以便密码只显示占位符的可读文本。

http://jsfiddle.net/DwAUY/

注意:我也使用密码掩码插件,所以这就像iPhone一样。作为jsfiddle的完整示例。

/**
* @preserve jquery.outofplace.js
* HTML5 placeholders for all browsers
* Copyright (c) 2010 timmy willison
* Dual licensed under the MIT and GPL licenses.
* http://timmywillison.com/licence/
*/
$.fn.outOfPlace = function (opts) {

    opts = $.extend({

        // Gives you control over the submit function if needed
        // The default function removes the placeholder before
        // submitting the form in case the field is not required client-side
        submit: function () {
            $(this).find('input, textarea').each(function () {
                var $input = $(this);
                if( $input.val() === $input.data('placeholder') ) {
                    $input.val('');
                }
            });
            return true;
        },

        // The placeholder class for setting
        // placeholder styles in your own css
        // e.g. input.place { color: #666666; }
        // This creates a lot more flexibility for you and
        // keeps the js lightweight
        placeClass: 'place'
    }, opts);

    /** Checks for browser autofill */
    function check_autofill ( $input ) {
        setTimeout(function() {
            var v = $input.val();
            if ( v === $input.data('placeholder') ) {
                $input.addClass( opts.placeClass );
            } else {
                $input.removeClass( opts.placeClass );
            }
        }, 300);
    }

    return this.each(function () {
        var $input = $(this),
            defaultText = $input.attr('placeholder') || '';

        // Set the placeholder data for future reference
        $input.data('placeholder', defaultText);

        // Attribute no longer needed
        $input.removeAttr('placeholder');

        // Focus and blurs, notice the class added and removed
        $input.focus(function () {
            if ( $input.val() === defaultText ) {
                $input.val('').removeClass( opts.placeClass );
            }
        }).blur(function () {
            if ( $.trim($input.val()) === '' ) {
                $input.val( defaultText ).addClass( opts.placeClass );
            }
        }).blur()
        // Bind the submit function
        .closest('form').submit( opts.submit );

        check_autofill( $input );
    });
};  

1 个答案:

答案 0 :(得分:1)

替换此位:

$('input:password').password123({
    character: "●"
});

有了这个:

$('input:password')[0].type="text";

http://jsfiddle.net/DwAUY/2/