Я отримав те саме повідомлення про помилку під час спроби зробити це в 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 Kent
EDIT: Гарне рішення, але не абсолютне. Працює на FF8 та IE8, але не повністю на Chrome (16.0.912.75 ver). Chrome не відображає текст пароля, коли сторінка завантажується. Також - FF відобразить ваш пароль, коли автозаповнення включено.