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 выводит аб и т.д.) |
<textarea id="myText" rows="20" cols="50" onkeypress="alert(this.value)"></textarea> |
Цитата:
|
Мне интересен не столько вывод алертом, а как получать вносимые данные в текстовое поле динамически?
|
Что значит "динамически"? Свойство "value", тебе уже показали выше.
|
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); |
Цитата:
|
<!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 строчке, когда условие выше выполняется, слияние того что уже было в текстовом поле и того что ввели в промт вроде происходит (выводится алертом), однако содержание текстового поля при этом остается прежним, почему? |
danik.js, разве что oninput, но оно вроде как есть только в IE. Автору же нужно, чтобы скрипт срабатывал при любом изменении поля, например при вставке текста, при вставке текста с помощью JS и т.д. А так, конечно можно обойтись keypress'ом и click'ом.
|
Цитата:
Например в IE есть кнопка очистки поля. Она генерирует только input событие. Удаление через контекстное меню тоже генерит только input. Таким образом input+propertychange - единственный событийный способ отловить все изменения. Еще есть IME (мобилки + иероглифичные языки) |
Часовой пояс GMT +3, время: 12:11. |