#html
#HTML
Вопрос:
У меня в форме есть listbox, инкапсулированный в пределах диапазона, который я хочу скрыть, но я также хочу, чтобы listbox был сгенерирован, потому что у меня есть код javascript, который считывает параметры внутри этого listbox и отображает значения в виде строки.
Когда я использую
<span style="display:none">listbox code </span>
Я замечаю, что мой js-код, считывающий содержимое listbox, не работает.
Я также прочитал следующее в w3school display:none: the element will generate no box at all
.
Есть ли способ скрыть диапазон при создании listbox??
На самом деле я хочу, чтобы listbox действовал как скрытое поле, и подумал о том, чтобы скрыть его с помощью функции отображения
Спасибо за любое предоставленное предложение.
Добавлен код:
<span style="display:hidden">
<select size=5 id="submission_person_ids" name="submission[person_ids][]" onfocus="displayPersons();"> </select>
</span>
Комментарии:
1. Что вы имеете в виду под listbox? Можете ли вы показать этот код?
2. Почему бы тогда не использовать скрытое поле? Я не уверен, что понимаю. Что вы хотите сделать, вы можете показать какой-нибудь код?
3. Я использую всплывающее окно для заполнения списка, найденного в моей форме, но мой босс не хочет видеть список, он хочет строку значений. Я сохранил это поле списка, чтобы упростить задачу при сохранении формы
4. Изменение
display
не удаляет элемент из DOM. То, что это не отображается, не удаляет его из документа. Это просто не видно. Ваш код для доступа к элементу должен быть ошибочным, так какdocument.getElementById('submission_person_ids')
он будет работать независимо от настроек отображения или видимости.
Ответ №1:
Если вы не собираетесь показывать входные данные, вам следует вместо этого использовать <тип ввода=»скрытый»> и изменять его значение.
Входные данные, которые скрыты с помощью display: none или внутри скрытого контейнера, будут проанализированы в DOM, но не будут отправлены, что, я полагаю, является источником вашей путаницы.
Ответ №2:
Вам нужно будет использовать
visibility:hidden;
но это оставит пространство точных размеров введенного ввода, создавая странные пробелы.
Чтобы преодолеть это. Вам нужно будет оформить ваши элементы в соответствии с position:absolute
родительским и z-index
it, а также задать ширину и высоту для кроссбраузерной совместимости.
Display:none
похоже, что браузеры практически нигде его не отображают. Когда вы вызываете display:block .. etc, он фактически отображается в браузерах и вычисляет все новые стили.
Но, как сказал @Gerry
использовать <input type="hidden">
если вы хотите скрыть некоторые переменные на странице — Тогда с помощью jquery и .show()
вы можете получить доступ к данным из скрытых входных данных и заполнить отображаемый элемент