Форма смены пароля, 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;
|
<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>
|
Спасибо тебе, добрый человек, все работает как из пушки.
|
| Часовой пояс GMT +3, время: 06:17. |