Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2013, 11:05
Новичок на форуме
Отправить личное сообщение для LeonidAndAnd Посмотреть профиль Найти все сообщения от LeonidAndAnd
 
Регистрация: 21.03.2013
Сообщений: 9

Обработка ввода в поле редактирования
В моей теме "Вопросы новичка" никто не ответил, видимо я хочу многого или мне просто лень читать. Хотя я и просил, чтобы направили только.
Ну ладно, разделю на подзадачи свою задачу.
Предположим, что нужно на страничке отобразить однострочное поле редактирования, а под ним текстовую метку. В этой текстовой метке будет находиться текущее содержимое поля ввода.
Как это реализуется в вебе на JavaScript??
Я прекрасно понимаю, как это для десктопа бы делалось, но для веба, не представляю.

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2013, 11:35
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Так, что ли?
<html>
  <body>
    <input type="text" id="i1"><br>
    <div id="d1"><!-- пока пусто --></div>
    <script>
      document.getElementById("i1").onchange = function() {
        var d1 = document.getElementById("d1");
        return function() { d1.textContent = this.value; }
      }();
    </script>
  </body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2013, 11:40
Новичок на форуме
Отправить личное сообщение для LeonidAndAnd Посмотреть профиль Найти все сообщения от LeonidAndAnd
 
Регистрация: 21.03.2013
Сообщений: 9

rgl,
Спасибо большое! Почти так! Только нужно, чтобы в метке отображался текст до нажатия Enter тоже. Т.е. я ввожу в поле ввода символ (или стираю его) и метка тоже изменяется.
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2013, 11:45
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

<html>
  <body>
    <input type="text" id="i1"><br>
    <div id="d1"><!-- пока пусто --></div>
    <script>
      document.getElementById("i1").onkeyup= function() {
        var d1 = document.getElementById("d1");
        return function() { d1.textContent = this.value; }
      }();
    </script>
  </body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 22.03.2013, 12:35
Новичок на форуме
Отправить личное сообщение для LeonidAndAnd Посмотреть профиль Найти все сообщения от LeonidAndAnd
 
Регистрация: 21.03.2013
Сообщений: 9

И еще вопрос. Допустим страничка будет посложнее, кода соответственно больше. Можно же будет весь код вынести в отдельный *.js файл, а на страничке прописать только в теге script путь к файлу *.js? И если да, то можно ли создать для каждого обработчика, например, отдельный файл? Т.е. файлов с кодом будет несколько, чтобы не было одного большого файла. И как тогда прописать на страничке? Несколько тегов <script> ??
Ответить с цитированием
  #6 (permalink)  
Старый 22.03.2013, 12:42
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Вынести скрипты в отдельные файлы конечно можно, и сделать по файлу на обработчик тоже можно. Только не переусердствуйте с количеством файлов, т.к. каждый файл - запрос на сервер.
Чтобы подключить файл скрипта надо написать:

<script src="js/fileName.js"></sctipt>

Т.е мы указываем путь к файлу относительно текущего файла и название.
Ответить с цитированием
  #7 (permalink)  
Старый 22.03.2013, 12:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Этот вариант также учитывает варианты вставки из контекстного меню, перетаскивания текста мышкой и прочие методы ввода.
<!DOCTYPE html>
<html>
  <body>
    <input type="text" id="i1"><br>
    <div id="d1"><!-- пока пусто --></div>
    <script>
        (function(){
            var input = document.getElementById("i1");
            var output = document.getElementById("d1");
            
            if ('oninput' in input) {
                input.oninput = function() {
                    output.textContent = this.value;
                }
            } else {
                // IE6-8
                input.onpropertychange = function() {
                    output.innerText = this.value;
                }
            }
        })();
    </script>
  </body>
</html


Сообщение от LeonidAndAnd
можно ли создать для каждого обработчика, например, отдельный файл? Т.е. файлов с кодом будет несколько, чтобы не было одного большого файла
В dev-версии можно. В продакшне все нужно сливать в один файл и пропускать через минификатор.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
спрятать/показать поле ввода при нажатии на checkbox g1r Элементы интерфейса 34 16.12.2017 00:34
Как отследить пропал ли текст placeholder-а при фокусе на поле ввода z1987 Общие вопросы Javascript 2 19.12.2012 11:10
Обработка даты из поля ввода Rainman71 Элементы интерфейса 6 15.04.2012 10:04
Вывод данных в поле ввода с помощью JS Aleks-prog Ваши сайты и скрипты 0 23.06.2011 12:09
Позиционирование курсора в поле ввода spider84 Элементы интерфейса 1 22.07.2010 13:03