本文介绍如何利用JavaScript动态修改input元素的type属性,实现密码输入框在明文与密文之间的切换。通过移除旧元素并重新创建具有新type值的input节点,结合checkbox控件触发事件,完成密码可见性的交互控制。
动态切换 Input 类型的原理
在Web开发中,有时需要允许用户动态切换输入框的类型,例如将密码框切换为明文显示框,或反之。这种功能通常通过JavaScript动态修改input元素的type属性来实现。
具体的代码实现逻辑如下:首先获取包含目标input的父容器元素,然后移除原有的input节点。接着,创建一个新的input元素,根据当前type的值判断是设置为text还是password,并赋予其相应的id、name和maxlength等属性,最后将新创建的input节点重新插入到父容器中。
JavaScript 实现代码
<script type="text/javascript">
function shoppw(thebox){
var ps = document.getElementById('ps');
var pass = document.getElementById('pass');
ps.removeChild(pass);
var psImput = document.createElement("INPUT");
if(pass.type == 'password'){
psImput.type = "text";
} else {
psImput.type = 'password';
}
psImput.id = 'pass';
psImput.name = "password";
psImput.maxlength="15";
ps.appendChild(psImput);
}
</script>
对应的HTML结构部分,主要包含一个用于显示密码的input元素,以及一个复选框(checkbox)用于触发切换操作。复选框绑定了一个点击事件,当用户勾选或取消勾选时,调用相应的JavaScript函数来处理input类型的切换。
HTML 结构示例
<td class="label"> * <label for="password" accesskey="">登录密码:</label></td>
<td ><div id="ps"><input type="text" name="password" maxlength="15" id="pass" /></div>
<input name="checkbox2" type="checkbox" value="true" checked="checked" id="show" onclick="shoppw(this)" />
<label for="show" accesskey="">显示</label></td>
通过上述方法,可以在运行时动态改变input元素的type属性值,从而实现密码显示与隐藏的交互效果。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!