Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Динамическая смена свойства type. Проблема.
 
 автор: wawilon   (14.07.2007 в 01:15)   письмо автору
 
 

Здравствуйте. Дело вот в чем. Имеется поле для ввода секретного кода. По умолчанию тип инпута 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. Данная команда не поддерживается.".
Хелп! Что делать?

   
 
 автор: bronenos   (14.07.2007 в 07:15)   письмо автору
 
   для: wawilon   (14.07.2007 в 01:15)
 

я бы в функции предложил один раз получить ссылку на объект и в дальнейшем с ней работать

   
 
 автор: mesos   (14.07.2007 в 13:35)   письмо автору
 
   для: wawilon   (14.07.2007 в 01:15)
 

В IE свойство type элементов форм - только для чтения. Тут даже setAttribute не поможет.

   
 
 автор: wawilon   (15.07.2007 в 21:32)   письмо автору
 
   для: mesos   (14.07.2007 в 13:35)
 

А как же тогда быть? Есть ли вообще решение этой проблемы?

   
 
 автор: CNT   (15.07.2007 в 21:53)   письмо автору
 
   для: 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.

   
 
 автор: bronenos   (15.07.2007 в 22:02)   письмо автору
 
   для: 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>

   
 
 автор: mesos   (16.07.2007 в 00:41)   письмо автору
 
   для: 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 скажете =)

   
 
 автор: wawilon   (16.07.2007 в 01:56)   письмо автору
 
   для: mesos   (16.07.2007 в 00:41)
 

Огромное спасибо всем, кто откликнулся! Проблема решена!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования