2017-03-10 58 views
0

我想写点显示密码的按钮。 我的意思是,只需将属性“type”从密码更改为文本,当我再次单击该按钮时,密码应该隐藏。按钮“显示密码”不起作用

我的代码:

$(document).ready(function(){ 
    var fieldType = $('input.password').attr("type"); 

    $('.show_passwrd').on("click",function(){ 
     if(fieldType == "password"){ 
      $('input.password').attr("type","text"); 
     } 
     else{ 
      $('input.password').attr("type","password"); 
     } 
    }) 
}); 

我没有在浏览器中的任何错误只是当我点击,什么都不做。

+0

提供的HTML代码,以及 –

回答

1

像达娜建议,你需要检查单击处理程序里面的字段类型。此外,它可能是您的选择器的问题。我已经展示了下面的HTML,这将使JavaScript的工作。

$(document).ready(function() { 
 
    $('.show_passwrd').on("click", function() { 
 
    var fieldType = $('input.password').attr("type"); 
 
    if (fieldType == "password") { 
 
     $('input.password').attr("type", "text"); 
 
    } else { 
 
     $('input.password').attr("type", "password"); 
 
    } 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input class="password" value="password" /> 
 
<input type="button" class="show_passwrd" value="show password" />

+0

我不知道为什么它不工作...当我只是为了显示密码而编写它正在工作,但是当我添加隐藏密码时它不起作用...我不知道为什么... –

+0

好吧,我加了id,它会工作。 –

4

将检查当前的type的代码移到事件处理程序中。每次点击.show_passwrd并且需要重新计算时,此值都会更改。

jQuery(function($) { 
    $('.show_passwrd').on("click", function() { 
     var fieldType = $('input.password').attr("type"); 
     if (fieldType == "password"){ 
      $('input.password').attr("type","text"); 
     } else { 
      $('input.password').attr("type","password"); 
     } 
    }); 
}); 

另一个要注意的是,选择input.password正在寻找一个<input>标签与CSS类的password。您可能需要添加它,如果它已不存在或改变选择通过ID来获得元素:

<input type="password" class="password"> 
+0

我不知道为什么它不工作...当我写只是为了显示密码它的工作,但是当我添加隐藏passowrd一点也没有” t工作...我不知道为什么... –