Javascript 第二个输入标记-如何添加?

Javascript 第二个输入标记-如何添加?,javascript,Javascript,如何将Javascript代码插入到第二个输入中 <input type="checkbox" onchange="document.getElementById('pass').type = this.checked ? 'text' : 'password'"> Show password 好吧,工作,但是 document.getElementById('pass' 'pass2').type 第二个“pass2”如何添加 抱歉,英语不好如果没有使用普通DOM函数的循环或复

如何将Javascript代码插入到第二个输入中

<input type="checkbox" onchange="document.getElementById('pass').type = this.checked ? 'text' : 'password'"> Show password
好吧,工作,但是

document.getElementById('pass' 'pass2').type
第二个“pass2”如何添加


抱歉,英语不好

如果没有使用普通DOM函数的循环或复制粘贴,您将无法做到这一点。我要么使用jQuery,要么将该行转换为一个函数,然后在发生更改时调用该函数

jQuery等价物:

$('#toggle-pass').click(function() {
    $('#pass, #pass2').prop('type', this.checked ? 'text' : 'password');
});
显示密码

这是不可能的,只需调用
getElementById
两次,最好使用实际的事件处理函数

function togglePasswordVisibility() {
    if(this.checked) {
        document.getElementById('pass').type  = 'text';
        document.getElementById('pass2').type = 'text';
    } else {
        document.getElementById('pass').type  = 'password';
        document.getElementById('pass2').type = 'password';
    }
}

另外,请注意,您的代码在Internet Explorer 8及更早版本(我认为这是正确的版本号)上不起作用,因为它在元素添加到文档后修复了
类型

您不能这样做,您必须为另一个元素执行相同的代码。也就是说,您必须调用
document.getElementById
并执行两次赋值(您还可以创建一个函数来封装此逻辑)。如果不使用HTML属性来绑定事件处理程序,则会更容易。查看以了解绑定事件处理程序的各种方法。@JaredFarrish:查看后面的部分。。。它是条件运算符的一部分。@Jared:不,似乎没问题,它似乎在切换明文/隐藏密码。但我依稀记得IE不让你改变类型。。。不过不确定。@FelixKling:是的,IE 8和更早版本不允许在将
s的
类型添加到文档后更改它们。@minitech-True。我不喜欢内联事件和ternaries的部分原因;检查IE8及以下版本。编辑:IE8不起作用。在IE8中使用jQuery的
$.prop()
$.attr()
似乎也不起作用。@JaredFarrish:好吧,jQuery的
prop
attr
主要是委托给
[]
.setAttribute
,所以我一点也不奇怪。克隆它很混乱,会破坏事件处理程序,所以我认为最好在IE8和更早版本上不使用这个功能;它需要输出到标记、替换和
$.replaceWith()
。显然不是一个干净的方法。另外,IE8及以下版本是否支持
输入复选框上的
onchange
?@JaredFarrish,谢谢您的测试!你太棒了!!但是在jsfiddle.com上工作,但在我的网站上不起作用。。我在mysite中发现了错误:)再次感谢!
function togglePasswordVisibility() {
    if(this.checked) {
        document.getElementById('pass').type  = 'text';
        document.getElementById('pass2').type = 'text';
    } else {
        document.getElementById('pass').type  = 'password';
        document.getElementById('pass2').type = 'password';
    }
}