2014-12-20 4 views
1

getElementById innerHTML не работает для меня?getElementById innerHTML не работает для меня?

Когда пользователь заполнить данные ввода тега, это будет изменить данные в Hello!

http://jsfiddle.net/59DFY/21/

<input type="text" id="hola" onchange="changeMe()"> 
<script> 
function changeMe() { 
    document.getElementById("hola").innerHTML="Hello!"; 
} 
</script> 
+0

поля ввода имеют значение не innerHTML – mplungjan

ответ

2

Вы должны использовать value. Он «изменит» внутренний HTML на входном элементе, но это не отображается на экране, так как это элемент void. Технически у него нет innerHMTL, но браузеры будут делать что-то вроде <input ...>Hello!</input>. Текст для элемента input использует value, кроме innerHTML, который использовал бы, например, <p> или <div>.

function changeMe() { 
    document.getElementById("hola").value="Hello!"; 
} 
+1

«* Это изменит внутренний HTML на входной элемент *» - нет, это не будет , Проблема в том, что элемент '' является элементом void или replace: он не имеет внутреннего HTML *, он не может содержать дочерние узлы любого типа. –

+0

@DavidThomas На самом деле это так. Изменение внутреннего HTML на 'input' могло бы выглядеть так:' Hello! '. Но он не отображается на экране. –

+0

И причина, по которой он не отображается на экране, состоит в том, что: «Элемент является элементом void или заменен: он не имеет внутреннего HTML *, он не может содержать дочерние узлы любого типа». Присвоение свойства ('innerHTML') не дает возможности или действительность для решения, которое вы предлагаете. –

3

Используйте значение свойство ввода текста.

Свойство value задает или возвращает значение атрибута value текстового поля.

Свойство value содержит значение по умолчанию или значение, которое вводит пользователь (или значение, заданное скриптом).

Так что попробуйте изменить его, как этого

function changeMe() { 
    document.getElementById("hola").value ="Hello!"; 
} 

http://jsfiddle.net/59DFY/21/

Смежные вопросы