Запрет на нажатие кнопки, если поля пустые
Дано:
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, время: 13:23. |