Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > PassEye или "Парольный глаз" (показываем пароль в


Автор: Telsystems 12.3.2014, 17:07
Добрый день.

Подскажите пожалуйста как лучше реализовать кнопку "подглядывания" введенных символов пароля.

Пытаюсь сделать используя эту http://sadisme.ru/jscoding/45-passeye-ili-parolnyy-glaz-pokazyvaem-parol-v-input.html, но почему то если запихнуть в <span> textBox, то при нажатии на глаз ничего не происходит.

Код

<span class="passEye">
     <asp:TextBox ID="tbPassword" runat="server" AutoCompleteType="Disabled" TextMode="Password" MaxLength="30" Width="152" TabIndex="2" />
</span>


А если реализовать так :

Код

<asp:TextBox ID="tbPassword" runat="server" AutoCompleteType="Disabled" TextMode="Password" MaxLength="30" Width="152" TabIndex="2" />
<div onclick="passEye();">click</div>
<script type="text/javascript">
    function passEye() {
        if (document.getElementById('<%= tbPassword.ClientID %>').type == 'password')
            document.getElementById('<%= tbPassword.ClientID %>').type = 'test';
        else document.getElementById('<%= tbPassword.ClientID %>').type = 'password';
    }
</script>


То такая реализация не работает в IE.


Методами тыка было реализован скрипт:
Код

<div onclick="passEye(document.getElementById();">click</div>

<script type="text/javascript">
    function passEye(document.getElementById('<%= tbPassword.ClientID %>')) {
    var marker = $('<span />').insertBefore(document.getElementById('<%= tbPassword.ClientID %>'));
    if (document.getElementById('<%= tbPassword.ClientID %>').type == 'password') {
    $(document.getElementById('<%= tbPassword.ClientID %>')).detach().attr('type', 'text').insertAfter(marker).focus();
    marker.remove();
    } else {
    $(document.getElementById('<%= tbPassword.ClientID %>')).detach().attr('type', 'password').insertAfter(marker).focus();
    marker.remove();
    }
}
</script>

Теперь у меня есть скрипт, который реализовывает моргание глаза : 
Код


$(function () {
    //PassEye by SaD([email protected])

    $(".passEye").append('<span class="eye" title="Показать/скрыть пароль"></span>');

    $(".passEye .eye").click(function () {
        $(this).toggleClass('openEye');        
    });  
});

И мой скрипт, который реализовывает преобразование пароля.

Вопрос: Как мне их соеденить? Как мне перенести мой скрипт, так, чтобы при нажатии на глаз выполнялось преоброзование пароля?

Автор: Miller_time 18.6.2014, 14:14
И не проще в Input менять type с password на text ? и 3 строчки кода.


Код

        $("#yourhtmlelemet").click(function () {
            $("#yourInputPassword").attr("type")=="password"){
                $("#yourInputPassword").attr("type","text");
            }else{
                 $("#yourInputPassword").attr("type","password");
            }
        });


Сорри пишу без редактора и думаю могут быть синтетические ошибки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)