почему Eventa.target.value не работает?
Потому что вы не используете Event.target.value
. Вы пытаетесь использовать HTMLElement.target.value
, что, конечно, равно undefined
, поскольку HTMLElement
не имеет свойства target
. Однако в случае HTMLInputElement
и HTMLTextareaElement
у них есть свойство value
, которое вы можете прочитать в прослушивателе событий:
var myinput = document.getElementById('myinput');
var mytext = document.getElementById('mytext');
var myform = document.getElementById('myform');
myform.addEventListener("change", function(event) {
console.log(mytext.value);
console.log(myinput.value);
})
myform.addEventListener("submit", function(event) {
event.preventDefault();
console.log(mytext.value);
console.log(myinput.value);
})
input[type="text"] {
width: 200px;
height: 20px;
}
input[type="submit"] {
width: 100px;
height: 50px;
}
<form action="" id="myform">
<input type="text" id="myinput" />
<br/>
<textarea id="mytext" cols="30" rows="10"></textarea>
<input type="submit" id='submit' />
</form>
Обратите внимание, что событие change
может произойти только тогда, когда элемент ввода генерирует событие blur
(в зависимости от используемого браузера).