5

所以我目前正在尝试获取密码类型的文本区域(实际上就像一个输入)。

我尝试创建自己的字体(只有黑点),但这有点难......

我尝试了一些 Jquery,但这也不是很确定。

谢谢你的帮助。

4

3 回答 3

3

这篇文章: 如何使 Textarea 像密码字段一样工作

提到使用 keydown 事件将框中的内容替换为您想要的任何内容。当然,您需要同时将输入的文本存储在某个 javascript 变量中。

于 2013-04-17T11:11:32.693 回答
3

您可以改用 CSS 来模糊文本。

style="color: transparent;text-shadow: 0 0 8px rgba(0,0,0,0.5);"
于 2021-03-13T20:23:43.207 回答
2

我希望你能从中得到想法

http://jsfiddle.net/X37Wz/6/

<textarea rows="10" cols="30" id="field"  onKeyPress="handleTyping(event)">
</textarea>

<textarea rows="10" cols="30" id="hiddenfield"  style="display:none">
</textarea>


function handleTyping(e){
    setTimeout(function(){handleTypingDelayed(e)},500);
}

function handleTypingDelayed(e){

    var text = document.getElementById('hiddenfield').value;
    var stars = document.getElementById('hiddenfield').value.length;
    unicode = eval(unicode);
    var unicode=e.keyCode? e.keyCode : e.charCode;

    if ( (unicode >=65 && unicode <=90) 
            || (unicode >=97 && unicode <=122) 
                || (unicode >=48 && unicode <=57) ){
        text = text+String.fromCharCode(unicode);    
        stars += 1;
    }else{
        stars -= 1;
    }

    document.getElementById('hiddenfield').value = text;
    document.getElementById('field').value = generateStars(stars);
}

function generateStars(n){
    var stars = '';
    for (var i=0; i<n;i++){
        stars += '.';
    }
    return stars;
}
于 2013-04-17T11:19:00.703 回答