Javascript 是否在列表页的显示表中显示*而不是密码值?

Javascript 是否在列表页的显示表中显示*而不是密码值?,javascript,html,Javascript,Html,我有一个包含用户名、密码、电子邮件和电话的表格。但显示页面应将密码的值显示为*。只有在编辑时才应显示值! 把我的密码当作密码1234 它应该在列表页面中显示为*** 但是它应该显示为pass1234。我该怎么做?这需要一些Javascriptonfocus处理程序: field = document.getElementById('pass'); field.onfocus(function() { this.setAttribute('type','text'); }); field.onbl

我有一个包含用户名、密码、电子邮件和电话的表格。但显示页面应将密码的值显示为*。只有在编辑时才应显示值! 把我的密码当作密码1234 它应该在列表页面中显示为***
但是它应该显示为pass1234。我该怎么做?

这需要一些Javascript
onfocus
处理程序:

field = document.getElementById('pass');
field.onfocus(function() { this.setAttribute('type','text'); });
field.onblur(function() { this.setAttribute('type', 'password'); });

只有当用户请求密码时,您才应以明文形式显示密码,例如,单击按钮。你认为星号有什么用

但是,您不能只设置输入的
类型,因为IE不允许这样做。因此,您需要完全替换该元素。为了

<input name="pw" id="pw" type="password"></input>
<label><input id="plain" type="checkbox"></input>Show plaintext</label>

显示纯文本
JS如下所示(使用jQuery进行事件附加和co,如果需要,您应该能够进行调整):

$(“#普通”).change(函数(){
var pw=$(“#pw”),
type=this.checked?“文本”:“密码”;
if(type==pw.prop(“type”))返回;
$(“”,{name:“pw”,id:“pw”,type:type})//可以通过编程方式完成
.val(pw.val())
.replaceAll(pw);
});

以纯文本显示密码完全违反了网络惯例,因为它允许肩部冲浪。它还意味着您正在以非散列形式存储它。密码的纯文本在保存后不应可检索,因为许多人在网站上重复使用密码。你所说的“表”是什么意思?一个包含所有用户密码的表格,或者一个包含一个用户的姓名、密码、电子邮件和电话的列的
?我会这样做的。但是正如@MartinSmith告诉你的,当密码存储在数据库中时,你应该对它们进行散列:)是的,这是一个包含所有用户数据的表。因此,在列表页面中,密码不应直接可见,而应存储为某些******。编辑时,它可以显示实际的密码<;代码>;设置属性>;
;没听说过那种方法吗?还有,你忘了提到这在Isorry不起作用,那是个错误。关于IE,他可以用
this.type='text'
来代替它。哦,我不知道。和往常一样(结果是一件麻烦事!)!
$("#plain").change(function() {
     var pw = $("#pw"),
         type = this.checked ? "text" : "password";
     if (type == pw.prop("type")) return;
     $("<input>", {name: "pw", id:"pw", type:type}) // could be done programatically
       .val(pw.val())
       .replaceAll(pw);
});