我有:
$('#pass').on('keyup keydown', function() { //the password input
$('#pass-result').text( $(this).val() ); //the input's bullet's, not string value
});
密码的文本值打印为输入字符串。如何将其转换为密码的伪装子弹形式(?)?
答案 0 :(得分:4)
如果您要在其中输入文字时在字段中显示点,则应使用<input type="password">
代替<input type="text">
:
<input type="password" id="pass" />
您可以使用$("pass").val()
获取文字。
看起来你想要一串点。要完成此任务,请使用:
var dots = Array($("pass").val().length + 1).join("•");
解释:
$("pass").val()
获取文字$("pass").val().length
获取Array($("pass").val().length + 1)
获取一个新数组,其长度比密码文本Array($("pass").val().length + 1).join("•")
返回数组的每个元素,每个元素之间插入一个点 - 这就是为什么我们需要1个额外的,否则我们会得到fencepost错误。答案 1 :(得分:0)
根据你只想解析一串点的事实。你要做的是(如果你使用2个输入!)
function getKeyCode(event) {
event = event || window.event;
return event.keyCode;
}
$('#pass').on('keyup', function(e) { //the password input
if (getKeyCode(e) == 8) {
$('#pass-result').val($('#pass-result').val().slice(0,-1) );
}
else {
$('#pass-result').val($('#pass-result').val() + '•');
}
});
虽然没有测试代码。但它应该在#pass-result
字段中的#pass
上添加一个•{key} down。它虽然没有删除任何退格..
如果您想使用<span>
,则需要使用.html()
function getKeyCode(event) {
event = event || window.event;
return event.keyCode;
}
$('#pass').on('keyup', function(e) { //the password input
if (getKeyCode(e) == 8) {
$('#pass-result').html($('#pass-result').html().slice(0,-1) );
}
else {
$('#pass-result').html($('#pass-result').html() + '•');
}
});
编辑:更新的代码并提供了jsFiddle链接