如何将字符串更改为密码?

时间:2015-03-15 02:43:35

标签: javascript jquery string

我有:

$('#pass').on('keyup keydown', function() { //the password input
    $('#pass-result').text( $(this).val() ); //the input's bullet's, not string value
});

密码的文本值打印为输入字符串。如何将其转换为密码的伪装子弹形式(?)?

2 个答案:

答案 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)获取一个新数组,其长度比密码文本
  • 的长度长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。它虽然没有删除任何退格..

http://jsfiddle.net/7810squo/

如果您想使用<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() + '•');
    }
});

http://jsfiddle.net/u9kdeewd/

编辑:更新的代码并提供了jsFiddle链接