Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Смена атрибута в input (https://javascript.ru/forum/jquery/20595-smena-atributa-v-input.html)

Beriagts 10.08.2011 18:44

Смена атрибута в input
 
Как сделать чтобы при крике на чекбокс, меняло атрибут type у формы.
Есть такой код
<form>
<input  type="password" value="12312" id="pas"/>
<input type="checkbox" id="zed"/>
</form>

Набросал какой то такой скрипт
if($('#zeichen:checked').length)
    {
        $('#pass').removeAttr('type');
        $('#pass').attr('type','text');
    }
    else
    {

ваый 10.08.2011 18:55

Нельзя так делать. Некоторые браузеры должны даже ошибку выкидывать при попытке сменить тип поля. Это связано с секьюрностью типа. Обычно в таких случаях делают подмену на обычное текстовое поле со значением из поля пароля.
<table>
<tr>
    <td>Password:</td>
    <td><input type="password" id="pass"></td>
</tr>
<tr> 
    <td></td>
    <td><label><input type="checkbox" id="check"> Show password</label></td>
</tr>
</table>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$('#check').change(function() {
    var $pass = $('#pass');

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

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

FR13NDS 19.04.2016 15:03

Срочно подскажи пожалуйста
 
А как вместо чекбокса заменить на div или кнопку, что бы при нажатии на кропку менялся атрибут

Dilettante_Pro 19.04.2016 17:03

Цитата:

Сообщение от FR13NDS (Сообщение 414484)
А как вместо чекбокса заменить на div или кнопку, что бы при нажатии на кропку менялся атрибут

В примере ваый изменить строки 8 и 14, 17
<table>
<tr>
    <td>Password:</td>
    <td><input type="password" id="pass"></td>
</tr>
<tr> 
    <td></td>
    <td><input type="button" id="check" value="Show password" /></td>
</tr>
</table>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$('#check').click(function() {
    var $pass = $('#pass');

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

    if ($pass.css('display') != 'none') {
        $pass.hide().next().show();
    }
    else {
        $pass.show().next().hide();
    }
});
</script>


Часовой пояс GMT +3, время: 17:36.