“将密码显示为文本”控件
我有一个通常的登录表单,包含两个输入字段,一个用于登录,一个用于密码。 我目前正在尝试添加一个控件,将输入的密码显示为纯文本,因此用户可以检查拼写错误。
问题是浏览器(至少是Firefox)不允许动态更改输入字段的type
属性,因此我不能只将type="password"
更改为type="text"
。 另一个问题是浏览器不允许获取密码字段的值,因此我无法创建新的input type="text"
并将其值设置为密码的值。 我已经看到了这个任务的几种不同的方法,包括这个 ,但它们只有在键入密码时才有效,并且在浏览器自动填充密码时失败。
因此,欢迎提出任何建议。 我正在使用jQuery。
你可以这样做:
Show password
如果可以,我认为在文本中显示密码并不是一个好主意,原因如下:
- 它并不常见,因此会让用户感到困惑
- 这意味着您可以全面查看密码
我还认为,如果您只是想帮助用户避免拼写错误,请在密码被禁用前给他们更多机会。 我认为大多数网站实施的典型“3”并不是真正需要的,我建议“10”尝试,或者说“5”,如果你想要真正保守,是完全可以接受的。 只要为他们算下来,让他们自己解决拼写错误。
只是我的拙见。
我自己从未尝试过这个但是你不能只访问元素的value属性吗?
如果你有…
然后在JavaScript / jQuery中……
var pass = document.getElementById('pw').value; $('pw').val()
出于安全原因,无法显示自动填写的密码。 如果可以的话,任何人都可以在您的计算机上看到您的密码。
您必须处理以下完整解决方案:
- javascript是不允许的 – 那么你不应该显示选择密码复选框
- 自动填充function已打开 – 正如我所写,您无法以这种方式显示密码。 Eaighter关闭自动完成或隐藏显示密码,直到用户重新输入密码。
自动完成由此jQuery关闭
$('input').attr('autocomplete', 'off');
要动态添加复选框,您可以使用http://www.cuptech.eu/jquery-plugins/上的以下jquery-showPassword插件
$('.show-password').change(function() { if ($("#form-fields_show-password").attr('checked')) { var showValue = $('#form-fields_password').val(); var showPassword = $(''); $('#form-fields_password').replaceWith(showPassword); } else { var hideValue = $('#form-fields_password').val(); var hidePassword = $(''); $('#form-fields_password').replaceWith(hidePassword); } });
这样的东西会找到输入区域,并将值存储在名为showValue的变量中。 然后你可以用type =“password”替换元素,使用new html where type =“text”,如果取消选中该复选框,则该值将被删除到密码类型字段中。
此方法存在一个问题,即密码类型值将在代码中可见,但为了解决此问题,您始终可以从密码类型中删除value属性,并强制用户重新键入。 如果你能在你的应用程序中使用它。
function change(){ id.type="password"; }
Password:
Show Password