1

ログインフォームでは、ラベルなしで作成し、プレースホルダーテキストを使用して、ユーザーが何を入力するかを理解できるようにしようとしています。

Q:パスワードがプレースホルダーのみに読み取り可能なテキストで表示されるように、以下のコードを変更するにはどうすればよいですか?

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 );
    });
};  
4

1 に答える 1

1

このビットを交換してください:

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

これとともに:

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

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

于 2012-11-23T10:31:19.760 に答える