Запрет на нажатие кнопки, если поля пустые
Дано:
console.log(document.forms); const form = document.forms.add; form.addEventListener('input', function (event) { console.log(event); }); Делаю: console.log(document.forms); const form = document.forms.add; form.addEventListener('input', function (event) { if (artist.value.length === 0 || song.value.length === 0) { console.log('Кнопка выключена'); } else if { console.log('Кнопка включена'); } }); :help: |
Если нужно именно кнопку сделать не активной, то обратитесь к этой кнопке и установите ей свойство disabled = true.
Если кнопку делать не активной необязательно, то можно слушать событие формы submit и при наличии пустых обязательных для заполнения полей отменять действие по умолчанию вызовом метода preventDefault события. Еще можно добавить обязательным для заполнения полям формы атрибут required. |
Вот это
} else if { чего такое? |
voraa,
если значение в поле артист равно 0, или в поле песня равно 0, то выводится в консоль 'кнопка выключена если иначе то выводится 'кнопка включена' |
knoxville88,
Вы в консоль то смотрите? Строка } else if { Никакой ошибки не дает? Должна давать Uncaught SyntaxError: Unexpected token '{' |
voraa,
Смотрю Даёт Поэтому и пришёл сюда за помощью |
Какая помощь то нужна?
Напишите правильно } else { |
voraa,
Писал То же самое |
Приведите код и то, что дает в консоле?
Посмотрите в отладчике код (вкладка Sources у Хрома). Может быть он не меняется, а берется старый из кеша. |
voraa,
const container = document.querySelector('.container'); const songsContainer = container.querySelector('.songs-container'); const addButton = container.querySelector('.input__btn_add'); const resetButton = container.querySelector('.input__btn_reset'); function doubleClickHandler(event) { event.target.textContent = playListTitles[Math.floor(Math.random() * playListTitles.length)]; document.querySelector('.cover__heading').removeEventListener('dblclick', doubleClickHandler); } document.querySelector('.cover__heading').addEventListener('dblclick', doubleClickHandler); const playListTitles = [ 'Игорь Тальков. Лучшее', 'Музыка категории Б', 'Подборка с фестиваля FYRE' ]; document.querySelector('.cover__heading').addEventListener('dblclick', function (event) { event.target.textContent = playListTitles[Math.floor(Math.random() * playListTitles.length)]; }); function renderAdded() { const songs = songsContainer.querySelectorAll('.song'); const noSongsElement = container.querySelector('.no-songs'); if (songs.length === 0) { resetButton.setAttribute('disabled', true); resetButton.classList.add('input__btn_disabled'); noSongsElement.classList.remove('no-songs_hidden'); } else { resetButton.removeAttribute('disabled'); resetButton.classList.remove('input__btn_disabled'); noSongsElement.classList.add('no-songs_hidden'); } } function createSong(artistValue, songValue) { const trackContainer = document.createElement('div'); trackContainer.classList.add('song'); const artistElement = document.createElement('h4'); artistElement.classList.add('song__artist'); artistElement.textContent = artistValue; const titleElement = document.createElement('p'); titleElement.classList.add('song__title'); titleElement.textContent = songValue; const songButtonElement = document.createElement('button'); songButtonElement.classList.add('song__like'); trackContainer.appendChild(artistElement); trackContainer.appendChild(titleElement); trackContainer.appendChild(songButtonElement); return trackContainer; } function addSong(event) { event.preventDefault(); const form = document.forms.add; const artist = form.elements.artist; const song = form.elements.song; const trackContainer = createSong(artist.value, song.value); songsContainer.appendChild(trackContainer); form.reset(); renderAdded(); } const artistInput = document.querySelector('.input__text_artist'); const songInput = document.querySelector('.input__text_song'); function resetPlaylist() { songsContainer.innerHTML = ''; renderAdded(); } addButton.addEventListener('click', addSong); resetButton.addEventListener('click', resetPlaylist); renderAdded(); songsContainer.addEventListener('click', function (event) { if (event.target.classList.contains('song__like')) { event.target.classList.toggle('song__like_active'); } }); console.log(document.forms); const form = document.forms.add; form.addEventListener('input', function (event) { if (artist.value.length === 0 || song.value.length === 0) { console.log('Кнопка выключена'); } else { console.log('Кнопка включена'); } }); |
const artistInput = document.querySelector('.input__text_artist');
const songInput = document.querySelector('.input__text_song'); .... form.addEventListener('input', function (event) { if (artist.value.length === 0 || song.value.length === 0) { console.log('Кнопка выключена'); } else { console.log('Кнопка включена'); } }); artist и artistInput это разные вещи? |
voraa,
да |
А где определение и задание artist?
Чего в консоле то пишет? |
|
Ну я же спрашиваю, Вы в консоль то смотрите?
Я добавил туда этот код if (artist.value.length === 0 || song.value.length === 0) { console.log('Кнопка выключена'); } else { console.log('Кнопка включена'); } Получаю: ReferenceError: artist is not defined На строкуif (artist.value.length === 0 || song.value.length === 0) { А вы пишете, что та же самая ошибка Uncaught SyntaxError: Unexpected token '{' Где определение и задание переменной artist? |
Часовой пояс GMT +3, время: 00:48. |