Я получил то же сообщение об ошибке при попытке сделать это в Firefox 5.
Я решил это с помощью кода ниже:
<script type="text/javascript" language="JavaScript">
$(document).ready(function()
{
var passfield = document.getElementById('password_field_id');
passfield.type = 'text';
});
function focusCheckDefaultValue(field, type, defaultValue)
{
if (field.value == defaultValue)
{
field.value = '';
}
if (type == 'pass')
{
field.type = 'password';
}
}
function blurCheckDefaultValue(field, type, defaultValue)
{
if (field.value == '')
{
field.value = defaultValue;
}
if (type == 'pass' && field.value == defaultValue)
{
field.type = 'text';
}
else if (type == 'pass' && field.value != defaultValue)
{
field.type = 'password';
}
}
</script>
И чтобы использовать его, просто установите для атрибутов onFocus и onBlur ваших полей что-то вроде следующего:
<input type="text" value="Username" name="username" id="username"
onFocus="javascript:focusCheckDefaultValue(this, '', 'Username -OR- Email Address');"
onBlur="javascript:blurCheckDefaultValue(this, '', 'Username -OR- Email Address');">
<input type="password" value="Password" name="pass" id="pass"
onFocus="javascript:focusCheckDefaultValue(this, 'pass', 'Password');"
onBlur="javascript:blurCheckDefaultValue(this, 'pass', 'Password');">
Я использую это для поля имени пользователя, так что оно переключает значение по умолчанию. Просто установите второй параметр функции на '', когда вы вызываете его.
Также, возможно, стоит отметить, что тип поля моего пароля по умолчанию на самом деле является паролем, на случай, если у пользователя не включен javascript или если что-то пойдет не так, его пароль по-прежнему защищен.
Функция $ (document) .ready - это jQuery, которая загружается после завершения загрузки документа. Это тогда изменяет поле пароля на текстовое поле. Очевидно, вам придется изменить 'password_field_id' на идентификатор поля вашего пароля.
Не стесняйтесь использовать и изменять код!
Надеюсь, это поможет всем, у кого была такая же проблема, как и у меня :)
- CJ Кент
РЕДАКТИРОВАТЬ: хорошее решение, но не абсолютное. Работает на FF8 и IE8, НО не полностью на Chrome (16.0.912.75 ver). Chrome не отображает текст пароля при загрузке страницы. Также - FF будет отображать ваш пароль при включенном автозаполнении.