Тьфу, будь автор статьи на этом форуме, я бы ему всю карму слил за код))
Вот, самое начало:
<form id="form">
<input type="text" name="input" />
<script>
form.input.oninput = function() {
var value = this.getAttribute('data-value') || '';
if (value.length < this.value.length)
this.setAttribute('data-value', value + this.value.substring(value.length));
else if (value.length > this.value.length)
this.setAttribute('data-value', value.substring(0, this.value.length));
};
form.input.onkeyup = function() {
var value = this.getAttribute('data-value');
this.value = value.replace(/./g, '*');
};
</script>
</form>
Тут на самом деле куча проблем, да и для поддержки IE8 придется делать лишние движения.
Хотя... достаточно добавить обработку позиции курсора и все должно быть ок.