2016-09-27 74 views
-1

我想让用户点击复选框,它会在输入框中显示密码为文本。如果他/她取消选中,它将该属性设置为密码。任何指针?jQuery显示密码

代码:

<!DOCTYPE html> 
<html> 
<head> 
    <script type='text/javascript' src='jquery-3.1.1.min.js'></script> 
    <script type='text/javascript' src='jquery-ui/jquery-ui.js'></script> 

    <script type='text/javascript'> 
     $(document).ready(function(){ 
      $('#check').click(function(){ 
       if($('test-input').attr('type', 'text')); 
      }); 
     }); 
    </script> 
</head> 

<body> 
    <input type='password' id='test-input' /> Show password <input type='checkbox' id='check' /> 
</body> 
</html> 
+2

[与jQuery变化类型输入栏的(可能的重复http://stackoverflow.com/questions/1544317/change-type-of-input-field-with-jquery ) – Alex

回答

2

你缺少之前在选择测试输入#,你需要每次都检查复选框的状态你点击它

<script type='text/javascript'> 
     $(document).ready(function(){ 
      $('#check').click(function(){ 
      alert($(this).is(':checked')); 
       $(this).is(':checked') ? $('#test-input').attr('type', 'text') : $('#test-input').attr('type', 'password'); 
      }); 
     }); 
    </script> 
+0

谢谢。这工作! – BoeNoe

+0

我会在几分钟内将您添加为最佳答案 – BoeNoe

2

这样做:

$('#check').click(function(){ 
    if('password' == $('#test-input').attr('type')){ 
     $('#test-input').prop('type', 'text'); 
    }else{ 
     $('#test-input').prop('type', 'password'); 
    } 
}); 
+0

它不适用于JSFiddle。 – patwoj98

+0

@ Jean-maxime Bouloc。它不工作。 – BoeNoe

+0

我编辑,它现在工作。它只是复制/粘贴错误的属性'$('test-input')'而不是正确的:'$('#test-input')' –

0

您的情况为id缺少#。此外,这将设置类型,而不是检查类型是文本还是密码。

$(document).ready(function() { 
 
    $('#check').click(function() { 
 
    if ($('#test-input').attr('type') == 'text') { 
 
     $('#test-input').attr('type', 'password'); 
 
    } else { 
 
     $('#test-input').attr('type', 'text'); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<input type='password' id='test-input' />Show password 
 
<input type='checkbox' id='check' />

+0

这不起作用... – BoeNoe

+0

是的。 ...什么似乎不起作用? – depperm

+0

当您单击该框时,它不会将文本属性更改为密码。 – BoeNoe

1

这项工作正确:

$('#check').click(function(){ 
 
\t if(document.getElementById('check').checked) { 
 
    $('#test-input').get(0).type = 'text'; 
 
    } else { 
 
     $('#test-input').get(0).type = 'password'; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='password' id='test-input' /> Show password <input type='checkbox' id='check' />

的jsfiddle:https://jsfiddle.net/0xuue3v6/

+0

完全不起作用。 – BoeNoe