Задать вопрос
Ningaro
@Ningaro

Как по клику на элемент проверить содержимое input и изменить ему class?

Я пытался сделать так что бы при нажатие на кнопку проверялся ответ в input и если он верный то класс менялся на .is-valid, в противном случаи .is-invalid
<input type="text" class="form-control" id="zd_7" placeholder="Введите ответ">
 <button type="button" id="check-btn" class="btn btn-lg btn-outline-success">Проверить ответы.</button>

document.getElementById('check-btn').onclick = function() {
    if (document.getElementById('zd_7').value ==  5 ) {
      document.getElementById('zd_7').removeClass("is-invalid");
      document.getElementById('zd_7').addClass("is-valid");
    } else {
      document.getElementById('zd_7').removeClass("is-valid");
      document.getElementById('zd_7').addClass("is-invalid");


Но вы итоге я получаю ошибку в консоле
Uncaught TypeError: document.getElementById(...).removeClass is not a function
    at HTMLButtonElement.document.getElementById.onclick


UPDATE
Обратился как посоветовали в ответах к конкретному элементу и все заработало!
document.getElementById('check-btn').onclick = function() {
    if ($('#zd_7').value ==  5 ) {
      $('#zd_7').removeClass("is-invalid");
      $('#zd_7').addClass("is-valid");
    } else {
      $('#zd_7').removeClass("is-valid");
      $('#zd_7').addClass("is-invalid");
  • Вопрос задан
  • 598 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
KickeRocK
@KickeRocK
FrontFinish
Хмм.
Вам синтаксис чего нужен? JS или jQuery?
JS: element.classList.remove("className");
jQuery:
$(el).removeClass('className');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Enrages
@Enrages
html5/css3/js/php
Скорее всего не подключена библиотека jQuery.
Попробуйте так:
document.getElementById('zd_7').classList.remove("is-invalid");
document.getElementById('zd_7').classList.add("is-valid");
Ответ написан
Комментировать
Sanovskiy
@Sanovskiy
Веб-разработчик с 2005 года
.removeClass это метод из jQuery
В нативном js нет методов манипуляции классами. Есть только свойство DomNode.className
Вам придется распарсить значение и вручную изменить строку.

Либо использовать jQuery
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы