You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何点击img标签实现密码输入框密码显示/隐藏切换功能

密码框明文/密文切换实现方法

核心逻辑:点击眼睛图标时,同步切换密码输入框的type属性值、切换对应状态的眼睛图标即可,不需要改动现有DOM结构。


前置准备

你现有Eye-slash.svg是密码隐藏(密文)状态的斜杠眼睛图标,额外准备一张无斜杠的睁眼图标(示例命名为Eye.svg),对应密码明文显示状态即可。

代码实现

HTML(无需调整原有结构,仅补全图标alt属性更规范)

<label for="password-input" class="password-container">
    <input class="main-input" id="password-input" type="password" minlength="8" title="Must contain at least 8 or more characters" placeholder="رمز عبور" required>
    <img class="password-show-icon" src="Eye-slash.svg" alt="切换密码显示状态">
</label>

可选CSS优化

你已经完成了图标在输入框内的定位,只需要额外加一行鼠标手型样式,提升交互感知:

.password-show-icon {
    /* 原有定位样式保留,追加下方样式 */
    cursor: pointer;
}

JS交互逻辑

把下方代码放到页面DOM加载完成后执行即可:

// 获取对应DOM节点
const passwordInput = document.getElementById('password-input');
const togglePwdIcon = document.querySelector('.password-show-icon');

// 绑定图标点击事件
togglePwdIcon.addEventListener('click', function(e) {
    // 阻止label默认关联触发行为,避免异常聚焦问题
    e.preventDefault();
    // 校验当前密码是否为隐藏状态
    const isPwdHidden = passwordInput.type === 'password';
    // 切换输入框type:隐藏时切为text明文显示,显示时切回password密文隐藏
    passwordInput.type = isPwdHidden ? 'text' : 'password';
    // 同步切换图标,注意将Eye.svg替换为你自己的睁眼图标实际路径
    togglePwdIcon.src = isPwdHidden ? 'Eye.svg' : 'Eye-slash.svg';
});

效果参考

密码框交互效果参考


内容的提问来源于stack exchange,提问作者Mazdak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:18:41