Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамически заменить содержимое input (https://javascript.ru/forum/dom-window/45073-dinamicheski-zamenit-soderzhimoe-input.html)

FirstRelict 13.02.2014 09:35

Динамически заменить содержимое input
 
Мне нужно чтобы содержимое input заменялось звёздочками,не сразу а вот так ->(появилась буква-заменилась звёздочкой) но при этом
$("#field").keyup(function(event) {//нажал на кнопку
		//alert(event.which);
		var hidden_text = ""; 
		for (var i = 0; i < this.value.length; i++) {
			hidden_text += "*"; \\подготовил звёздочки, по кол-ву символов
 		}
		saved_text += this.value.charAt(this.value.length-1) //сохранил последний введённый символ, для дальнейшего использования в другой части кода...
		 this.value = hidden_text;//заменил содержимое звёздочками

  
});


есть ли готовые решения, такой задачки? я гуглил, но что то ничего не нашел, вот и решил пробовать сам... кто нибудь подскажите плиз, либо как делать? либо еще что то что может пригодится)

danik.js 13.02.2014 09:55

Цитата:

Сообщение от FirstRelict
есть ли готовые решения, такой задачки?

Есть, готовее некуда :)))
<input type="password" />

danik.js 13.02.2014 09:57

for (var i = 0; i < this.value.length; i++) {
      hidden_text += "*"; \\подготовил звёздочки, по кол-ву символов
}


Это можно сделать проще:

var textLength = 4;
var hiddenText = Array(textLength + 1).join('*');
alert(hiddenText);

FirstRelict 15.02.2014 19:32

Цитата:

Сообщение от danik.js (Сообщение 297415)
Есть, готовее некуда :)))
<input type="password" />

Фишка в моём случае в том, что ты видишь букву а потом она заменяется звёздочкой.

danik.js 15.02.2014 19:35

FirstRelict, мне вобще не понятен смысл твоего обращения. Ты показываешь код, ничего вообще не говоришь - работает он или нет, и при этом просишь какое-то "готовое решение". Чем твой код не "готов"?

FirstRelict 15.02.2014 19:45

Вот готовое решение http://alistapart.com/article/the-pr...with-passwords

рони 15.02.2014 19:50

FirstRelict,
показать текст скрытый звёздочками и заменить текст на звёздочки это не одно и тоже :-?

danik.js 15.02.2014 19:59

Тьфу, будь автор статьи на этом форуме, я бы ему всю карму слил за код))

Вот, самое начало:
<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 придется делать лишние движения.
Хотя... достаточно добавить обработку позиции курсора и все должно быть ок.

danik.js 15.02.2014 20:05

Цитата:

this.timer = setTimeout("with(document.getElementById('"+
masking_element.id+"')){value=value.replace(/./g,'"+
mask_character+"')}",2000);
За такой код просто бить по ебальнику молча. :-E


Часовой пояс GMT +3, время: 08:07.