Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.02.2013, 15:00
Новичок на форуме
Отправить личное сообщение для colonel_337 Посмотреть профиль Найти все сообщения от colonel_337
 
Регистрация: 21.02.2013
Сообщений: 3

Форма смены пароля, password/text, показать все что скрыто
Здравствуйте дорогие жабаскриптеры!

Нужна ваша помощь. Есть форма смены пароля, чекбокс, что бы звездочки в инпутах поменять на символы.
Все работает, проблема не в этом. Проблема в том, что если я до введения паролей включаю форму "Показать пароль", то сам пароль показывается, но в POST запрос не передается.
Если я сначала ввожу данные, потом включаю показ - данные передаются.
Догадываюсь, что тут кака то маленькая хрень, но недостаток образования в jQuery делает свое черное дело.
Буду очень благодарен за помощь.

$content .= <<<HTML

 <form method="post"  name='exch'  action=''>
$lang[exchange_old_pass]:<input type='password' id='old_pass' name='old_pass'  />
$lang[exchange_new_pass]:<input type='password' id='pass' name='pass'  onblur="CheckReg('pass',this.value); return false;"/>

 <label><input type="checkbox"  id="show_pass">$lang[exchange_show]</label>
 <input  type='submit'   value="$lang[exchange_go]" name="go" />
 </form>
<script>

$('#show_pass').change(function() {
    var pass = $('#old_pass');
    var newpass = $('#pass');

    if (!pass.next().is('.pass-show') | !newpass.next().is('.pass-show')) {
        $('<input class="pass-show">').val(pass.val()).hide().insertAfter(pass);
        $('<input class="pass-show">').val(newpass.val()).hide().insertAfter(newpass);
    }

    if ($(this).is(':checked')) {
        pass.hide().next().show();
        newpass.hide().next().show();
    }
    else {
        pass.show().next().hide();
        newpass.show().next().hide();
    }
});
</script>

HTML;

Последний раз редактировалось colonel_337, 21.02.2013 в 16:03.
Ответить с цитированием
  #2 (permalink)  
Старый 21.02.2013, 18:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<input type="password" id="old_pass" name="old_pass" />
<input type="password" id="pass" name="pass" onblur="return;CheckReg('pass',this.value)" />
<input type="checkbox" id="show_pass" />
<script src="//code.jquery.com/jquery-latest.js"></script>
<script>
(function(){
    var fields = [$('#old_pass').get(0), $('#pass').get(0)];
    $('#show_pass').change(function() {
        var type = this.checked ? 'text' : 'password';
        try {
            $(fields).prop('type', type);
        } catch (e) {
            // IE workaround
            for (var i=0; i < fields.length; i++) {
                $(fields[i]).replaceWith(function(){
                    return fields[i] = $('<input/>', {
                        id: this.id,
                        name: this.name,
                        value: this.value,
                        onblur: this.onblur,
                        type: type
                    }).get(0);
                });
            }
        }
    });
})();
</script>

Последний раз редактировалось danik.js, 21.02.2013 в 18:21.
Ответить с цитированием
  #3 (permalink)  
Старый 21.02.2013, 18:38
Новичок на форуме
Отправить личное сообщение для colonel_337 Посмотреть профиль Найти все сообщения от colonel_337
 
Регистрация: 21.02.2013
Сообщений: 3

Спасибо тебе, добрый человек, все работает как из пушки.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баги Opera пишем сюда devote Оффтопик 101 08.08.2013 05:56
фрактальный сыр x-yuri Оффтопик 76 23.11.2011 21:59
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37