2009-10-30 83 views

Trả lời

26

Bạn không thể thay đổi ký tự mặt nạ mật khẩu trong trường mật khẩu chuẩn. Bạn có thể giả mạo nó với một hộp văn bản, nhưng nó làm cho một mô hình bảo mật yếu vì bạn không nhận được sự bảo vệ bạn làm từ hộp văn bản mật khẩu. Một lưu ý phụ, thường không phải là ý hay khi thay đổi hành vi của các mục như thế này bởi vì người dùng đã quen với một dạng mặt nạ và bạn sẽ giới thiệu một mặt nạ khác - nếu không có lý do chính đáng để làm điều này, tôi ' d tránh nó.

+0

Làm thế nào tôi có thể giả mạo nó với textbox, tuy nhiên tôi không sử dụng tính năng này cho mật khẩu, hãy kiểm tra các câu hỏi http://stackoverflow.com/questions/31604402/replace-text-with-stars-in-html-without-javascript? Noredirect = 1 # comment51159417_31604402 –

3

Không - tác nhân người dùng chọn kiểu mặc định của riêng mình và có (theo kiến ​​thức của tôi) không có thuộc tính CSS bạn có thể thay đổi để xác định ký tự mặt nạ.

Tất nhiên, điều này có thể xảy ra nếu trường mật khẩu chỉ là trường văn bản chuẩn và bạn đã che dấu đầu vào theo cách thủ công bằng trình xử lý sự kiện javascript (onKeyPress, có thể). Thậm chí bạn có thể khai báo trường này là type="password" trong HTML, sau đó có hàm JS của bạn sửa đổi DOM để thay đổi loại của nó. Tôi sẽ có một chút cảnh giác về việc này, mặc dù; việc thực hiện trình duyệt gần như chắc chắn là khá chắc chắn và việc phá vỡ chức năng bảo mật được thiết lập để cuộn của riêng bạn hiếm khi là một ý tưởng hay.

+6

Thiết lập chức năng bảo mật? Các trường nhập mật khẩu và nhập văn bản trong HTML giống nhau, chỉ có các thay đổi giao diện người dùng, với mặt nạ xảy ra trong các trường mật khẩu. Tôi không downvoting câu trả lời của bạn, nhưng điều này không giống như phát minh lại bánh xe hoặc tạo ra một cỗ máy mã hóa homebrew, nó chỉ vá một yếu tố giao diện người dùng để đáp ứng thích của bạn. – Spidey

+1

@Spidey, bên cạnh tính năng che dấu ký tự, các trường mật khẩu cũng ngăn không cho sao chép nội dung từ chúng, tùy thuộc vào trình duyệt và hệ điều hành. –

+1

@MicahHenning Cảm ơn bạn đã chỉ ra điều này. Dù sao, ngay cả khi người dùng đã thử sao chép từ hộp văn bản tùy chỉnh, tất cả những gì anh ta sẽ nhận được sẽ là asteriscs hoặc điểm hoặc bất kỳ biểu tượng nào khác mà bạn chọn để che dấu mật khẩu thực. – Spidey

1

Hiện tại, có vẻ như điều này có thể thực hiện được trong trình duyệt webkit. Vui lòng xem http://help.dottoro.com/lcbkewgt.php để biết các ví dụ và tài liệu.

Không áp dụng để nhập mật khẩu

<input type="text" style="-webkit-text-security: square;" />

Không có giải pháp tốt cho các trình duyệt khác như khi câu trả lời này đã được viết và thậm chí trong các trình duyệt webkit, các ký tự mà bạn đang được phép chỉ định rất hạn chế.

+4

Điều này không hoạt động. Tôi đã thử nghiệm nó trên 4 trình duyệt khác nhau. –

+0

Đã cập nhật. Cảm ơn bạn @OleHaugset. – www139

14

Tạo phông chữ của riêng bạn và sử dụng @font-facefont-family (và font-size) cho input[type="password"]. Nó sẽ giúp giải quyết vấn đề của bạn. Nhưng ... bạn phải tạo phông chữ với dấu đầu dòng và ký tự dấu hoa thị thay thế. Tất cả các số ký tự trong phông chữ có thể đại diện cho cùng một ký tự. Sử dụng google để tìm chương trình miễn phí để chỉnh sửa phông chữ vectơ.

Không bao giờ nói "không thể". Bạn sẽ tìm thấy một hack cho vấn đề của bạn.

Các ký tự được thay thế bằng biểu tượng của bạn (đối với Chrome, Firefox và MSIE): 26AB, 25E6, 25CF, 25D8, ​​25D9, 2219, 20F0, 2022, 2024, 00B7, 002A.

(18C)

+1

Bạn có phông chữ mẫu để chia sẻ không? – camolin3

+0

điều này sẽ là câu trả lời hoàn hảo ... Cảm ơn người đàn ông ... giải quyết vấn đề của tôi –

+1

@waLLe: Người phụ nữ không phải người đàn ông ... Mọi người hiếm khi nghĩ rằng hành vi trừu tượng và đa cấp. BTW. câu hỏi là cũ (2009) nhưng vẫn hoạt động. Trong quá khứ, '@ font-face' không được xác định. Trong năm 2009 nó đã không thể nhưng ... mọi người lặp lại câu trả lời mặc dù thực tế Firefox hỗ trợ nó từ v3.5, IE có lẽ từ v6, Chrome từ v4. Nhưng vẫn còn ... Opera Mini không hỗ trợ. Khi tôi viết câu trả lời, câu trả lời chính là +21 điểm. – 18C

0

<input type="text" style="-webkit-text-security: circle;" />

+1

Thuộc tính CSS '-webkit-text-security' sẽ không hoạt động trên IE, Firefox hoặc Opera. – sorak

Các vấn đề liên quan