如何将标签值更改为密码字段值?

时间:2017-12-07 13:14:48

标签: javascript html label

我要将值设置为标签的密码显示为***(按字符显示)。

<label>password</label>

输出如下所示,因为标签值无论如何。

password

预期结果:

********

在我的情况下,它应该像********一样转换(根据不是字符)。

是js的新手。任何人都建议我这样做的关键点。

如何根据字符将其转换为*值的数量?

3 个答案:

答案 0 :(得分:1)

对于没有jQuery的纯Javascript,您可以使用split()将字符串转换为数组,然后使用map()根据条件修改每个元素。

var label = document.getElementById('password');

let replaceAll = (str, chars = []) => {
  return str.split('')
  .map(c => c.trim() && !chars.includes(c) ? '*' : c)
  .join('');
}
  
label.innerHTML = replaceAll(label.textContent, '*');
.container {
  margin: 5px;
  padding: 5px;
  border: 1px solid black;
}

span {
  margin: 5px;
  font-weight: bold;
}
<div class='container'>
  <span>Field without formatting</span>
  <label id='standard'>password</label>
  <hr />
  <span>Field with formatting</span>
  <label id='password'>password</label>
</div>

答案 1 :(得分:1)

您无法在标签中存储*****以及密码的值,您可以使用具有可见性的输入:隐藏如下:

<input type="password" name="pwd" style="visibility: hidden"></input>
<label id="lblPwd"></label>

并在javascript中对其进行处理,以在标签中显示相同的值。

或者您可以使用输入并将css设置为像标签一样显示:

<style type="text/css">

.label{
    background:rgba(0,0,0,0);
    border:none;
}

</style>

<input type="password" class="label" disabled/>

答案 2 :(得分:1)

这是另一个简单的解决方案:

<html>
<body>


<label id="passw">password</label>

<script>
var pass= document.getElementById("passw").innerHTML;
var char = pass.length;
var password ="";
for (i=0;i<char;i++)
{
password += "*";
}
document.getElementById("passw").innerHTML = password;
</script>

</body>
</html>