2014-11-18 3 views
0

Это должен быть простой вопрос, но мне трудно найти причину возникновения проблемы.textarea mouseup Событие срабатывает только один раз

У меня есть следующий код:

<html> 
<Head> 

</Head> 
<Body> 

<textarea id="rrr" rows="5" cols="40" maxlenght="50" onmouseup="myfunction()"></textarea> 

<script> 

function myfunction(){ 

document.getElementById("rrr").innerHTML="test"; 

} 


</script> 

    </Body> 
</html> 

Этот код работает только один раз! когда я загружаю страницу и делаю mouseup на textarea, я увижу слово «тест».

Затем я удаляю текст textarea и нажимаю на него снова, и ничего не происходит. Зачем?

ответ

3

Изменение innerHTML в value:

function myfunction() { 
    document.getElementById("rrr").value = "test"; 
} 

jsFiddle example

И минорной ноте, у вас есть опечатка в maxlenght.

+0

+1, ОК, это работает. Но вы идете, почему innerHTML работает только один раз? Я предполагаю, что браузер может кэшировать его и предотвращать. не имеет никакого смысла. –

+0

На самом деле, если вы проверите элемент и посмотрите DOM, вы увидите, что атрибут innerHTML постоянно обновляется на каждой кнопке мыши, однако вы хотите изменить свойство value. Вы можете прочитать о деталях на странице https://html.spec.whatwg.org/multipage/forms.html#dom-textarea-value и – j08691

-3

Этот код вызывает то, что функция будет выполняться один раз, в первый раз событие MouseUp запускаемый:

onmouseup="myfunction()" 

Этого код с другой стороны, присваивает MyFunction в качестве обработчика для события MouseUp, так будет вызываться каждый раз при запуске события.

onmouseup="myfunction" 
+0

См. Http://stackoverflow.com/questions/20485425/why-in-javascript-event-handler-functions-with-parentheses – j08691

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