JQuery значение по умолчанию в поле пароля - PullRequest
3 голосов
/ 09 мая 2011

Я использую этот плагин Jquery для заполнения ввода текстом, который исчезает при нажатии. Это не идеально для полей пароля, потому что все отображается в виде точек. Что может быть хорошим способом сделать текст по умолчанию видимым в полях пароля перед началом ввода?

Ответы [ 3 ]

7 голосов
/ 09 мая 2011

Через JS мой ответ будет таким же, как у @ ultimatebuster's.Тем не менее, весь маршрут JS хакерский, теперь, когда начали появляться альтернативы.Многие современные браузеры теперь поддерживают эту вещь напрямую через HTML5:

<input type="password" name="password" placeholder="Enter password"/>

(Многие современные браузеры = все основные, кроме Internet Explorer. Я отказываюсь кодировать его; если вам нужно иметь то же самое в IEвам также придется идти по хакерскому маршруту.)

1 голос
/ 09 мая 2011

Как и предполагалось, вы можете поменять местами входы, но в IE это не работает. IE не допустит этого, поскольку это может быть своего рода дыра в безопасности.

Я использовал это:

/* From: http://grzegorz.frydrychowicz.net/jquery_toggleformtext/
   Modified to swap password textbox type so watermark can be read */
$(document).ready(function() {
    if (!jQuery.browser.msie) {
        $("input:password").each(function() {
            if (this.value == '') {
                this.type = "text";
            }
            $(this).focus(function() {
                this.type = "password";
            });
            $(this).blur(function() {
                if (this.value == '') {
                    this.type = "text";
                }
            });
        });
    }
    $("input:text, textarea, input:password").each(function() {
        if (this.value == '') {
            $(this).addClass("watermark");
            this.value = this.title;
        }
    });
    $("input:text, textarea, input:password").focus(function() {
        $(this).removeClass("watermark");
        if (this.value == this.title) {
            this.value = '';
        }
    });
    $("input:text, textarea, input:password").blur(function() {
        if (this.value == '') {
            $(this).addClass("watermark");
            this.value = this.title;
        }
    });
    $("input:image, input:button, input:submit").click(function() {
        $(this.form.elements).each(function() {
            if (this.type == 'text' || this.type == 'textarea' || this.type == 'password') {
                if (this.value == this.title && this.title != '') {
                    this.value = '';
                }
            }
        });
    });
});

Я, наконец, просто сдался и пошел с обычным поведением ввода пароля. Я обнаружил, что приведенный выше обмен входами немного странный, но вы можете попробовать его.

1 голос
/ 09 мая 2011

Вы можете установить тип поля ввода в качестве пароля. Тем не менее, установите его в нормальное состояние с помощью javascript при загрузке страницы (таким образом вы можете легко отступить, если у пользователя нет JS). Получив щелчок, установите тип поля ввода обратно на пароль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...