出于可用性原因,我想在我的登录表单中添加一个复选框,允许用户切换密码字段的屏蔽。
示例代码
我为此获得的基本代码如下(这是快速样机代码,未在 Chrome Canary 以外的任何地方进行测试):
HTML
<input type="password" name="password" id="password" value="somepassword" />
<input type="checkbox" name="unmask" id="unmask" />
JavaScript
var password = document.getElementById('password'),
chkbox = document.getElementById('unmask');
chkbox.addEventListener('click', function (e) {
password.type = e.currentTarget.checked ? 'text' : 'password';
});
JSFiddle
虽然上述概念似乎工作得很好,但当您查看将翻转jQuery 源代码type
中的属性的代码时,您会看到如下注释:-
// 我们不能允许改变类型属性(因为它会导致 IE 出现问题)
这增加了我在 StackOverflow 其他地方看到的类似引用......
从 Microsoft Internet Explorer 5 开始,type 属性是一次读/写,但仅在使用 createElement 方法创建输入元素且在将其添加到文档之前。
...似乎表明上述代码不适用于 Internet Explorer。
我想知道的是;是这样吗?如果是这样,这只是 IE7/8 等的问题吗?是否有任何进一步的官方文档。