Javascript.RU

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

textarea и alert
<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="UTF-8"/>
		<title>
			JavaScript
		</title>
		<script type="text/javascript">
		var text;
			function addText()
			{
				var myText = document.getElementById("myText");
				if(myText)
					alert(myText.innerHTML);
			}
			addText();
		</script>
	</head>
	<body>
		<form name="myForm">
			<textarea id="myText" rows="20" cols="50"></textarea>
		</form>
	</body>
</html>

Как сделать чтобы, при вводе в текстовую область alert выводил её содержание при появлении в ней каждого символа (ввели сначало а, alert выводит а, вводим б, alert выводит аб и т.д.)
Ответить с цитированием
  #2 (permalink)  
Старый 15.09.2013, 12:12
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

<textarea id="myText" rows="20" cols="50" onkeypress="alert(this.value)"></textarea>
Ответить с цитированием
  #3 (permalink)  
Старый 15.09.2013, 12:37
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от DmitriSpartak
выводил её содержание при появлении в ней каждого символа
А если текст вставят через copy/paste, алерт не нужен?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 15.09.2013, 13:05
Интересующийся
Отправить личное сообщение для DmitriSpartak Посмотреть профиль Найти все сообщения от DmitriSpartak
 
Регистрация: 05.05.2013
Сообщений: 12

Мне интересен не столько вывод алертом, а как получать вносимые данные в текстовое поле динамически?
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2013, 13:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Что значит "динамически"? Свойство "value", тебе уже показали выше.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2013, 13:54
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

document.getElementById('myText').onkeypress = function() {
   alert(this.value);
}


Можно ещё каждые 100ms проверять текстовое поле на наличие новых символов.

var txt = document.getElementById('myText'), val = '';

setInterval(function() {
   if(txt.value != val) {

      val = txt.value;
      alert(val);
      //....

   }
}, 100);
Ответить с цитированием
  #7 (permalink)  
Старый 15.09.2013, 14:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
Можно ещё каждые 100ms проверять текстовое поле на наличие новых символов.
А это зачем? Есть же события!
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 15.09.2013, 14:57
Интересующийся
Отправить личное сообщение для DmitriSpartak Посмотреть профиль Найти все сообщения от DmitriSpartak
 
Регистрация: 05.05.2013
Сообщений: 12

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="UTF-8"/>
		<title>
			JavaScript
		</title>
		<script type="text/javascript">
			var text;
			window.onload = pageInt;
			var formText;
			function addText()
			{
				pageInt();
				text = prompt("Введите элемент","");
				if(formText)
				{
					formText = formText + text;
					alert(formText);
					myText.nodeValue += formText;
				}
				else
				{
					var t = document.createTextNode(text);
					myText.appendChild(t);
				}
			}
			function pageInt()
			{
			document.getElementById('myText').onkeypress = changeText;
			}
			function changeText()
			{
				formText = this.value;
			}
		</script>
	</head>
	<body>
		<form name="myForm">
			<textarea id="myText" rows="20" cols="50"></textarea>
		</form>
		<a href="javascript:addText()">Добавить текст</a>
	</body>
</html>

Проблема в 20 строчке, когда условие выше выполняется, слияние того что уже было в текстовом поле и того что ввели в промт вроде происходит (выводится алертом), однако содержание текстового поля при этом остается прежним, почему?
Ответить с цитированием
  #9 (permalink)  
Старый 15.09.2013, 15:04
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

danik.js, разве что oninput, но оно вроде как есть только в IE. Автору же нужно, чтобы скрипт срабатывал при любом изменении поля, например при вставке текста, при вставке текста с помощью JS и т.д. А так, конечно можно обойтись keypress'ом и click'ом.
Ответить с цитированием
  #10 (permalink)  
Старый 15.09.2013, 15:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
danik.js, разве что oninput, но оно вроде как есть только в IE
Наоборот. Событие input во всех браузерах + propertychange в IE8: это покроет все случаи изменеия значения.
Например в IE есть кнопка очистки поля. Она генерирует только input событие. Удаление через контекстное меню тоже генерит только input.
Таким образом input+propertychange - единственный событийный способ отловить все изменения.
Еще есть IME (мобилки + иероглифичные языки)
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Безопасность клиентского кода. BallsShaped Общие вопросы Javascript 35 29.10.2012 17:20
обновить textarea wp2 Events/DOM/Window 6 03.02.2012 23:44
Resize textarea, в копилку. Robox jQuery 0 17.01.2011 18:05
alert!!! как быть с alert???? gooody jQuery 2 19.02.2010 21:44
alert () вместо sleep () artemiusgreat Общие вопросы Javascript 1 14.11.2008 14:06