Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.01.2017, 22:48
Интересующийся
Отправить личное сообщение для wwonder Посмотреть профиль Найти все сообщения от wwonder
 
Регистрация: 09.09.2016
Сообщений: 28

Скрыть код в исходном коде страницы
Проблема следующая - делаю адаптивную верстку админки, у меня грубо говоря 2 блока
<span class='big'><input name='NAME'></span>
<span class='mobile'><input name='NAME'></span>

При применении @media, display:none не скрывает код в исходном коде страницы, получается проблема с внесением данных, тк 2 инпута с одинаковым полем. Возможны ли варианты решения этой проблемы с помощью js?
Верстка там сложная и приходится именно дублировать блоки.
Существует ли альтернатива, чтобы скрыть в том числе и в исходном коде? Напр. в зависимости от разрешения экрана подключать тот или иной код...
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2017, 12:22
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

<div class="big"><input type="text" name="name"></div>
<div class="mobile"><input type="text" name="name"></div>

<style>
	
input {
	all: initial;
}
	
.mobile {
	background: #ffeaea;
	display: initial;
}

.big {
	background: #d2ffde;
	display: none;
}

@media (min-width: 600px) {
	.mobile {
		display: none;
	}

	.big {
		display: initial;
	}
}
	
</style>
<script>
	
{
	let onResizeHandler = event => {
		for(let element of document.querySelectorAll("input[name], input[data-name]")) {
			if(!("name" in element.dataset)) element.dataset.name = element.name;
			
			// если элемент формы не виден,
			// то удаляем его "name" атрибут;
			// иначе восстанавливаем
			if(element.offsetWidth > 0 && element.offsetHeight > 0) {
				element.setAttribute("name", element.dataset.name);		
			} else {
				element.removeAttribute("name");
			}
		}
	};

	addEventListener("resize", onResizeHandler);
	onResizeHandler();
};
	
</script>

<!-- просто кнопка, не к теме, но открывает в новом окне, чтобы можно было изменять его размеры смотря в консоль на inputs -->
<input type="button" style="position:absolute;bottom:0;right:0" value="In new tab" onclick="var o=open('', '', '');o.document.write(document.documentElement.outerHTML);">


Хотя такое решение, не является *на самом деле* решением, поскольку в HTML следует хранить только данные, а не их представление.
У вас на самом деле одна форма, но вы хотите чтобы она по разному выглядела. С помощью CSS можно как угодно оформлять и переставлять элементы на странице.
http://www.mezzoblue.com/zengarden/alldesigns/ Пример одного HTML, и как его можно разными способами при помощи CSS преображать...

Последний раз редактировалось Malleys, 03.01.2017 в 12:36.
Ответить с цитированием
  #3 (permalink)  
Старый 04.01.2017, 20:59
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ничего ж себе... ES6 уже новичкам рекомендуют) Идёт прогресс по-тихоньку)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить html код удаленной страницы AntonP Общие вопросы Javascript 19 02.05.2012 16:15
Поиск слова в исходном коде html страницы klsorat2010 Ваши сайты и скрипты 1 20.05.2010 23:46
Не получается передать href в код страницы Alex78 Events/DOM/Window 1 30.10.2009 17:58
Как узнать динамический код страницы? gosha13 Общие вопросы Javascript 5 27.07.2009 13:31
То-ли лыжи не едут, толи... возможно ошибка в коде. AzriMan Общие вопросы Javascript 19 18.05.2009 16:07