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

时间:2012-09-21 11:35:37

标签: javascript html

我有一个包含用户名,密码,电子邮件和电话字段的表格。但显示页面应显示密码值 * 。只有在编辑它时才应显示值! 例如:将我的密码作为pass1234 它应该在列表页面中显示为 *** 但是编辑它应该显示为pass1234。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您应该只在用户要求时以明文形式显示密码,例如单击按钮。您认为星号有什么用处?

但是,您不能只设置输入的type,因为IE不允许这样做。所以你需要完全替换元素。对于

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

JS看起来像这样(使用jQuery进行事件附加和co,如果需要,你应该可以调整它):

$("#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);
});