|
|
|
| Здравствуйте. Дело вот в чем. Имеется поле для ввода секретного кода. По умолчанию тип инпута password. Рядом имеется кнопка при нажатии на которую должно свойство с password поменяться на text. А все вводимые данные остаться на месте но в уже открытом виде. При еще одном нажатии обратная операция.
Вот код:
function show_key()
{
var k=document.getElementById('keyid').value;
if(document.getElementById('keyid').type=='password')
{
document.getElementById('keyid').type='text';
document.getElementById('keyid').value=k;
}
else if(document.getElementById('keyid').type=='text')
{
document.getElementById('keyid').type='password';
document.getElementById('keyid').value=k;
}
}
|
Проблема следующая: В мозилле и опере все гуд, а вот в IE этот код не работает. Пишет "Ошибка: Не удалось получить свойство type. Данная команда не поддерживается.".
Хелп! Что делать? | |
|
|
|
|
|
|
|
для: wawilon
(14.07.2007 в 01:15)
| | я бы в функции предложил один раз получить ссылку на объект и в дальнейшем с ней работать | |
|
|
|
|
|
|
|
для: wawilon
(14.07.2007 в 01:15)
| | В IE свойство type элементов форм - только для чтения. Тут даже setAttribute не поможет. | |
|
|
|
|
|
|
|
для: mesos
(14.07.2007 в 13:35)
| | А как же тогда быть? Есть ли вообще решение этой проблемы? | |
|
|
|
|
|
|
|
для: wawilon
(15.07.2007 в 21:32)
| | Решение есть - и оно прописано в документации: As of Microsoft® Internet Explorer 5, the type property is read/write-once, but only when an INPUT element is created with the createElement method and before it is added to the document. | |
|
|
|
|
|
|
|
для: wawilon
(15.07.2007 в 21:32)
| | ну конечно решение не идеальное, но вот... какропал и проверил...
<input type='text' id='key' onKeyUp='save_key(this.value)' />
<input type='button' onClick='show_key(this)' value='Скрыть' />
<script type='text/javascript'>
var text = '';
var show = false;
var input = document.getElementById ('key');
function save_key (key)
{
if (show)
{
text += input.value[input.value.length-1];
input.value = input.value.replace (/./g, '*');
}
else
text = input.value;
}
function show_key (shower) {
input.value = show ? text : text.replace(/./g, '*');
shower.value = show ? 'Скрыть' : 'Показать';
show = !show;
}
</script>
|
| |
|
|
|
|
|
|
|
для: wawilon
(15.07.2007 в 21:32)
| |
<script type="text/javascript">
function show_key(kid) {
var inp = document.getElementById(kid);
var val = inp.value;
var el = document.createElement('input');
newType = (inp.getAttribute('type')=='password')?'text':'password';
el.setAttribute('type', newType);
el.setAttribute('value', val);
inp.parentNode.insertBefore(el, inp);
inp.parentNode.removeChild(inp);
el.setAttribute('id', kid);
}
</script>
<input type="text" id="keyid" value="">
<input type="button" value="go!" onclick="show_key('keyid')">
|
Спасибо CNT скажете =) | |
|
|
|
|
|
|
|
для: mesos
(16.07.2007 в 00:41)
| | Огромное спасибо всем, кто откликнулся! Проблема решена! | |
|
|
|