Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2014, 09:35
Интересующийся
Отправить личное сообщение для FirstRelict Посмотреть профиль Найти все сообщения от FirstRelict
 
Регистрация: 25.02.2013
Сообщений: 13

Динамически заменить содержимое 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;//заменил содержимое звёздочками

  
});


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

Последний раз редактировалось FirstRelict, 15.02.2014 в 19:35.
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2014, 09:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от FirstRelict
есть ли готовые решения, такой задачки?
Есть, готовее некуда ))
<input type="password" />
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2014, 09:57
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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


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

var textLength = 4;
var hiddenText = Array(textLength + 1).join('*');
alert(hiddenText);
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 15.02.2014, 19:32
Интересующийся
Отправить личное сообщение для FirstRelict Посмотреть профиль Найти все сообщения от FirstRelict
 
Регистрация: 25.02.2013
Сообщений: 13

Сообщение от danik.js Посмотреть сообщение
Есть, готовее некуда ))
<input type="password" />
Фишка в моём случае в том, что ты видишь букву а потом она заменяется звёздочкой.
Ответить с цитированием
  #5 (permalink)  
Старый 15.02.2014, 19:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

FirstRelict, мне вобще не понятен смысл твоего обращения. Ты показываешь код, ничего вообще не говоришь - работает он или нет, и при этом просишь какое-то "готовое решение". Чем твой код не "готов"?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 15.02.2014, 19:45
Интересующийся
Отправить личное сообщение для FirstRelict Посмотреть профиль Найти все сообщения от FirstRelict
 
Регистрация: 25.02.2013
Сообщений: 13

Вот готовое решение http://alistapart.com/article/the-pr...with-passwords
Ответить с цитированием
  #7 (permalink)  
Старый 15.02.2014, 19:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

FirstRelict,
показать текст скрытый звёздочками и заменить текст на звёздочки это не одно и тоже
Ответить с цитированием
  #8 (permalink)  
Старый 15.02.2014, 19:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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

Вот, самое начало:
<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:02.
Ответить с цитированием
  #9 (permalink)  
Старый 15.02.2014, 20:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить input на select2 Taypfoon Элементы интерфейса 0 16.05.2013 03:24
Как заменить всё содержимое страницы? AJAX/JQuery someone Общие вопросы Javascript 9 15.02.2013 16:19
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Как стереть содержимое поля INPUT по клавише Esc? bug FireFox? Маэстро Firefox/Mozilla 4 20.06.2011 15:55
Динамически заменить функцию на другую, с таким же именем SkyN Общие вопросы Javascript 2 03.02.2009 00:43