@Vadim997

Как активировать кнопку при появление текста в поле?

Необходимо активировать кнопку при появлении определённого текста в поле.

Вот код:

<button id="button">OK</button>
	<input type="text" id="text">

<script>
		
	var elem = document.getElementById("button");
	var text = document.getElementById("text").value;
		elem.disabled = true;
	
	function activateButton() {

		if(text == "hello") {
			elem.disabled = false;
		}
	}

	activateButton();
</script>
  • Вопрос задан
  • 3287 просмотров
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Достаточно давно появилось событие input https://developer.mozilla.org/en-US/docs/Web/Event...
В отличие от других событий даёт именно то, что вам нужно:
— ввод с клавиш
— перетаскивание
— копирование/вставку
— правильно отслеживает ввод с бухгалтерской раскладки (типа Alt+171) единственного символа

Для старых IE приходилось параллельно отслеживать propertychange, но там всё хуже — IE берёт в расчёт любое изменение, даже стилей, даже состояния типа focus/blur.

Вот вам искомое jsfiddle.net/petroveg/m2H67/1
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
cha-cha
@cha-cha
var elem = document.getElementById("button");
var input = document.getElementById("text");
elem.disabled = true;

input.addEventListener("change", function(){
    if(this.value == "hello"){
        elem.disabled = false;
    }
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы