Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

akiprov avatar akiprov 20 Точки

Document Object Model - Exercise 2 - Locked Profile Problem

Същото домашно, друга задача, подобен проблем. На практика решението ми работи безотказно, а в Judge - 33/100. Ето го кода:

function solve() {
	let profiles = Array.from(document.getElementsByClassName('profile'));
	profiles.forEach((profile) => {
		let profileStates = Array.from(profile.querySelectorAll('input'))
			.filter(i => i.type === 'radio' && i.name.endsWith('Locked'));
		profileStates.forEach((state) => {
			state.addEventListener('change', () => {
				profileStates.forEach((stateRadioButton) => {
					stateRadioButton.toggleAttribute('checked');
				});
			});
		});
		let hiddenFieldsContainer = Array.from(profile.querySelectorAll('div'))
			.filter(div => div.id.endsWith('HiddenFields'))[0];
		let showButton = profile.getElementsByTagName('button')[0];
		showButton.addEventListener('click', () => {
			let profileState = Array.from(profile.querySelectorAll('input'))
				.filter(i => i.type === 'radio' && i.checked)[0].value;
			if (profileState == 'unlock') {
				if (window.getComputedStyle(hiddenFieldsContainer).display === 'none') {
					hiddenFieldsContainer.style.display = 'inline-block';
					showButton.innerHTML = 'Hide it';
				} else {
					hiddenFieldsContainer.style.display = 'none';
					showButton.innerHTML = 'Show more';
				}
			}
		});
	});
}

Тук няма валидации, така че съвети от сорта на "Виж си проверките, нещо да не си объркал." не вървят. Два свързани радиобутона и един стандартен.
Аз поне като го пусна това нещо в браузър, виждам точно резултата, който се очаква по условие. Какво обаче иска Judge?

Тагове:
0
JavaScript Fundamentals
kristiyanb avatar kristiyanb 20 Точки
Best Answer

Това минава 100/100

https://pastebin.com/zjHWvcxN 

1
akiprov avatar akiprov 20 Точки

Благодаря колега! Това от решенията, които асистента обеща да пусне във Фейсбук ли е?

0
akiprov avatar akiprov 20 Точки

Благодаря и на теб, Тео! Полезна информация.
Не ми допада че минават решения, в които елементите се адресират по позицията си в страницата, ама щом така трябва да пишем, за да получим реални оценки...

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.