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, время: 22:11. |