javascript - 为什么显示/隐藏密码仅适用于一个输入字段

标签 javascript jquery html css

我有两个输入字段。一个用于密码,另一个用于确认密码。我想为两个输入字段显示/隐藏密码功能。

我已经编写了相同的代码,但它只适用于密码输入字段。

<div class="input-field col s12 clear password-button">
    <input name="old_password" ng-model="form.password" id="old_password" type="password" class="validate">
    <a id="showPassword"><i class="material-icons">visibility</i></a>
</div>

<div class="input-field col s12 clear password-button">
    <input name="new_password1" ng-model="form.password1" id="new_password" type="password" class="validate">
    <a id="showPassword"><i class="material-icons">visibility</i></a>
</div>


<script type="text/javascript">
$(document).ready(function() {
$("#showPassword").click(function(){
    var foo = $(this).prev().attr("type");
    if(foo == "password"){
        $(this).prev().attr("type", "text");
    } else {
        $(this).prev().attr("type", "password");
        }
    });
});
</script>

样式.css

#showPassword{
    position:absolute;
    right: 0px;
    top: 12px;
    color: #000;
}

如何使确认密码字段具有显示/隐藏功能?

最佳答案

您有两个具有相同 id 的元素,因此仅在第一个元素上触发该事件。最好使用 class 代替:

<div class="input-field col s12 clear password-button">
    <input name="old_password" ng-model="form.password" id="old_password" type="password" class="validate">
    <a id="password" class="showPassword"><i class="material-icons">visibility</i></a>
</div>

<div class="input-field col s12 clear password-button">
    <input name="new_password1" ng-model="form.password1" id="new_password" type="password" class="validate">
    <a id="password_confirm" class="showPassword"><i class="material-icons">visibility</i></a>
</div>


<script type="text/javascript">
$(document).ready(function() {
  $(".showPassword").click(function() {
    var foo = $(this).prev().attr("type");
    if (foo == "password") {
      $(this).prev().attr("type", "text");
    } else {
      $(this).prev().attr("type", "password");
    }
  });
});
</script>

关于javascript - 为什么显示/隐藏密码仅适用于一个输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57374584/

相关文章:

javascript - 当我点击浏览器的“后退”按钮时,AngularJS的 `$location.path()`没有改变?

html - Twitter 的 Bootstrap - 表单输入太薄

javascript - 我可以通过 Firebase 对用户进行身份验证并使用 Supabase(私有(private))存储桶而不依赖 Supabase 身份验证用户限制吗

javascript - Gulp-sourcemaps 没有创建 sourcemap 文件?

javascript - 如何使用 React 正确实现 d3 svg click?

html - 将行平均分为 3 列

html - CSS、HTML 和 DIV ID

javascript - 使用按钮将本地 JavaScript 变量传递到 Phaser 游戏上的全局变量

jquery - 来自 WCF 服务的 jQuery 错误响应文本中的奇怪行为

jquery - 在 Jquery 上获取下拉菜单值