Tôi đã nhận được thông báo lỗi tương tự trong khi thử làm điều này trong Firefox 5.
Tôi đã giải quyết nó bằng cách sử dụng mã dưới đây:
<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>
Và để sử dụng nó, chỉ cần đặt các thuộc tính onF Focus và onBlur của các trường của bạn thành một cái gì đó như sau:
<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');">
Tôi cũng sử dụng nó cho một trường tên người dùng, vì vậy nó sẽ thay đổi giá trị mặc định. Chỉ cần đặt tham số thứ hai của hàm thành '' khi bạn gọi nó.
Ngoài ra, có thể đáng lưu ý rằng loại mặc định của trường mật khẩu của tôi thực sự là mật khẩu, chỉ trong trường hợp người dùng không bật javascript hoặc nếu có lỗi, cách đó mật khẩu của họ vẫn được bảo vệ.
Hàm $ (document). Yet là jQuery và tải khi tài liệu tải xong. Điều này sau đó thay đổi trường mật khẩu thành một trường văn bản. Rõ ràng bạn sẽ phải thay đổi 'password_field_id' thành id trường mật khẩu của bạn.
Hãy sử dụng và sửa đổi mã!
Hy vọng điều này sẽ giúp tất cả những người có cùng một vấn đề tôi đã làm :)
- Kent Kent
EDIT: Giải pháp tốt nhưng không tuyệt đối. Hoạt động trên FF8 và IE8 NHƯNG không hoàn toàn trên Chrome (16.0.912,75 ver). Chrome không hiển thị văn bản Mật khẩu khi tải trang. Ngoài ra - FF sẽ hiển thị mật khẩu của bạn khi bật tự động điền.